Bongkar seluruh paket atau pustaka pohon

9

Kadang-kadang saya ingin menelepon unload-featureuntuk membongkar perpustakaan ... dan perpustakaan bergantung padanya ... dan perpustakaan lain bergantung pada perpustakaan itu ...

Bagaimana saya bisa membongkar perpustakaan dan semua perpustakaan yang bergantung padanya, tanpa berjalan melalui pohon ketergantungan secara manual?

Kasus penggunaan umum adalah membongkar semua pustaka paket (mis. Ketika memutakhirkan atau menghapus instalasi), jadi jika ada cara untuk melakukan itu, itu akan cukup baik.

Gilles 'SANGAT berhenti menjadi jahat'
sumber

Jawaban:

2

Tidak ada cara bawaan untuk melakukan ini - lihat Membongkar di manual Elisp.

unload-featuremengambil forceargumen yang memungkinkan pembongkaran paksa Pbahkan jika paket lain bergantung P; Apakah itu cukup untuk kebutuhan Anda?

Jika tidak, Anda dapat mencoba membuat versi rekursif unload-featureberisi:

(let* ((file (feature-file feature))
       (dependents (delete file (copy-sequence (file-dependents file))))) 
  (when dependents
    (mapc #'unload-feature-recursive (mapcan #'file-provides dependents))))
Tianxiang Xiong
sumber
Terima kasih, saya memperbaiki kesalahan dalam pertanyaan. Menulis versi rekursif unload-featureadalah inti dari pertanyaan itu.
Gilles 'SANGAT berhenti menjadi jahat'