パッケージまたはライブラリツリー全体をアンロードする


9

ときどきunload-feature、ライブラリをアンロードするために呼び出したい…それがライブラリに依存している…そして別のライブラリがそのライブラリに依存している…

依存関係ツリーを手動で移動せずに、ライブラリとそれに依存するすべてのライブラリをアンロードするにはどうすればよいですか?

一般的な使用例は、パッケージのすべてのライブラリをアンロードすることです(たとえば、アップグレードまたはアンインストール時)。そのための方法があれば、それで十分です。

回答:


2

これを行う組み込みの方法はありません。Elispマニュアルの「アンロード」を参照してください。

unload-feature他のパッケージが依存している場合でも、force強制的にアンロードできる引数をとりPますP。それで十分ですか?

そうでない場合は、以下をunload-feature含む再帰バージョンを作成してみてください。

(let* ((file (feature-file feature))
       (dependents (delete file (copy-sequence (file-dependents file))))) 
  (when dependents
    (mapc #'unload-feature-recursive (mapcan #'file-provides dependents))))

おかげで、質問のエラーを修正しました。unload-feature問題のポイントは、の再帰バージョンを作成することでした。
Gilles 'SO-悪をやめる'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.