私が使用していますuse-package
(これらのパッケージのほとんどはmelpaである)のパッケージをインストールして設定します。これらのすべてのパッケージを最新の状態に保つ、クリーンで自動化された方法はありますか?
そうでない場合、この場合の最良のワークフローは何ですか?
注:ここに非常によく似た質問と回答がありますが、「更新プログラムのインストールに対処する必要があります」に関する説明が必要でした。十分な評判を得ていないので、明確化のために答えにコメントできませんでした。
私が使用していますuse-package
(これらのパッケージのほとんどはmelpaである)のパッケージをインストールして設定します。これらのすべてのパッケージを最新の状態に保つ、クリーンで自動化された方法はありますか?
そうでない場合、この場合の最良のワークフローは何ですか?
注:ここに非常によく似た質問と回答がありますが、「更新プログラムのインストールに対処する必要があります」に関する説明が必要でした。十分な評判を得ていないので、明確化のために答えにコメントできませんでした。
回答:
私はこれを手動で行います。list-packages
ヒットU
を実行して使用可能なアップグレードをマークし、確認したくないものがあるかどうかを確認します。その後x
、アップグレードします。私はこれをかなり定期的に行い、多くの場合、同時に新しいものをチェックします。これを簡素化するためにいくつかの調整があります(以下を参照)。
アップグレードは自動化される可能性があると思いますが、更新プログラムが何かを壊し、それをバックアウトし、自動アップデーターが再びインストールするのを防ぐ必要がある場合を検討したいと思います。
いくつかのパッケージメニューの調整:
(defun package-menu-find-marks ()
"Find packages marked for action in *Packages*."
(interactive)
(occur "^[A-Z]"))
;; Only in Emacs 25.1+
(defun package-menu-filter-by-status (status)
"Filter the *Packages* buffer by status."
(interactive
(list (completing-read
"Status: " '("new" "installed" "dependency" "obsolete"))))
(package-menu-filter (concat "status:" status)))
(define-key package-menu-mode-map "s" #'package-menu-filter-by-status)
(define-key package-menu-mode-map "a" #'package-menu-find-marks)
これにより、s new
新しく利用できるパッケージを確認するために使用できます。そして、U
アップグレードをマークするa
ためにヒットした後、変更されたものの詳細などを掘り下げたい場合に備えて、マークされたものの発生バッファリストを見つけることができます
package-menu-filter
コマンドは25.1で新しくなったため、そのコマンドは機能しません。
auto-package-update
パッケージを自動的に更新するために使用できます。
私の他の投稿(/emacs//a/31903/9972)からコピー
(use-package auto-package-update
:ensure t
:config
(setq auto-package-update-delete-old-versions t
auto-package-update-interval 4)
(auto-package-update-maybe))
そのセットアップでは、パッケージは毎日更新され4
、古いパッケージは削除されます。
epm
更新プロセスをクリーンに保つようにしてください。
cf. https://github.com/xuchunyang/epm
通常のinit.el設定をロードせずに、emacsバッチプロセス内で更新プロセスを実行できます。
パッケージ管理コマンドを拡張するparadoxと呼ばれる非常に推奨されるパッケージがあります。https://github.com/Malabarba/paradoxから詳細を読む
(use-package paradox
:init
(setq paradox-github-token t)
(setq paradox-execute-asynchronously t)
(setq paradox-automatically-star t))
このセットアップは、個別に設定されたgithubトークンを使用してパッケージの使用統計をシステムにフィードバックしparadox-upgrade-packages、選択したキーにバインドされたコマンドを手動で実行するとパッケージをバックグラウンドで更新します。
paradox-github-token設定方法については、変数のインラインドキュメントを参照してください。
a
マークされたパッケージを見つけるために働いた。ただし、s installed
または残りの3つのステータスのいずれかが空のリストを返します。