Last Modified:
パッケージを削除するとき、不要になったパッケージも同時に削除する #Emacs
とあるパッケージを削除したとき、そのパッケージだけが依存しているパッケージは不要になるので同時に消えて欲しいですよね。
解決方法
(defun ad:package-delete (pkg-desc)
"不要になった依存パッケージも同時に削除する"
(let ((this-reqs (mapcar 'car (package-desc-reqs pkg-desc)))
all-reqs)
(dolist (package package-alist)
(dolist (req (mapcar 'car (package-desc-reqs (cadr package))))
(add-to-list 'all-reqs req)))
(dolist (req this-reqs)
(unless (memq req all-reqs)
(package-delete (car (assoc-default req package-alist)))))))
(advice-add 'package-delete :after #'ad:package-delete)
- 削除時以外に不要パッケージを検出するためにはinit.elを解析しないといけないのでやってない。
featurep
で判断できるかもしれないけど。