卸载整个程序包或库树


9

有时我想打电话unload-feature来卸载一个库……它依赖于一个库……而另一个库依赖于那个库……

如何卸载一个库和所有依赖它的库,而无需手动遍历依赖树?

一个常见的用例是卸载软件包的所有库(例如,在升级或卸载时),因此,如果有做到这一点的方法,那就足够了。

Answers:


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)'所以
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.