use-packageでインストールされたパッケージを更新する方法


24

私が使用していますuse-package(これらのパッケージのほとんどはmelpaである)のパッケージをインストールして設定します。これらのすべてのパッケージを最新の状態に保つ、クリーンで自動化された方法はありますか?

そうでない場合、この場合の最良のワークフローは何ですか?

注:ここに非常によく似た質問と回答がありますが、「更新プログラムのインストールに対処する必要があります」に関する説明が必要でした。十分な評判を得ていないので、明確化のために答えにコメントできませんでした。

回答:


16

私はこれを手動で行います。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ためにヒットした後、変更されたものの詳細などを掘り下げたい場合に備えて、マークされたものの発生バッファリストを見つけることができます


ありがとう、質問は主に答えられます。aマークされたパッケージを見つけるために働いた。ただし、s installedまたは残りの3つのステータスのいずれかが空のリストを返します。
ジャアグリットサパナ

使用しているEmacsのバージョンは何ですか?
グルーカス

私は24.5.1を使用しています
Jaagrit Sapana

わかった 私がチェックしたところ、package-menu-filterコマンドは25.1で新しくなったため、そのコマンドは機能しません。
-glucas

私はこれを毎週月曜日の朝に行います
リッキー・ネルソン

10

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、古いパッケージは削除されます。



0

パッケージ管理コマンドを拡張する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設定方法については、変数のインラインドキュメントを参照してください。


0

リストパッケージとプレスShift + Uを入力するだけです。インストールされているすべてのパッケージに更新のマークを付けます。


おそらく完全に自動ではありません。
ジャンピエール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.