Cara memperbarui paket yang diinstal dengan paket penggunaan


24

Saya menggunakan use-packageuntuk menginstal dan mengkonfigurasi paket (sebagian besar paket ini dalam melpa). Apakah ada cara otomatis yang bersih untuk menjaga agar semua paket ini tetap mutakhir?

Jika tidak, apa alur kerja terbaik dalam kasus ini?

Catatan: Pertanyaan yang sangat mirip di sini dengan jawaban, tetapi saya ingin klarifikasi tentang "Anda masih harus berurusan dengan menginstal pembaruan". Saya tidak dapat mengomentari jawaban untuk klarifikasi karena saya tidak memiliki reputasi yang cukup.

Jawaban:


17

Saya hanya melakukan ini secara manual: jalankan list-packageshit Uuntuk menandai upgrade yang tersedia, kemudian tinjau untuk memutuskan apakah ada yang tidak ingin saya ambil. Lalu xuntuk upgrade. Saya melakukan ini dengan cukup teratur, dan sering memeriksa apa yang baru pada saat yang sama. Saya punya beberapa penyesuaian untuk menyederhanakan ini (lihat di bawah).

Saya menduga peningkatan dapat dilakukan secara otomatis, tetapi Anda ingin mempertimbangkan kasus di mana pembaruan memecah sesuatu dan Anda harus mencadangkannya dan kemudian mencegah pembaru otomatis Anda hanya menginstalnya lagi.

Beberapa menu tweak paket:

(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)

Dengan ini saya dapat menggunakan s newhanya untuk melihat paket apa yang baru tersedia. Dan setelah menekan Uuntuk menandai peningkatan, saya dapat amenemukan daftar buffer yang ditandai, jika saya ingin menggali detail apa yang berubah dll.


Terima kasih, pertanyaan utamanya dijawab. abekerja untuk mengetahui paket yang ditandai. Namun, s installedatau salah satu dari tiga status lainnya mengembalikan daftar kosong.
Jaagrit Sapana

Versi Emacs apa yang Anda gunakan?
glucas

Saya menggunakan 24.5.1
Jaagrit Sapana

Ah baiklah. Saya memeriksa dan package-menu-filterperintah ini baru dalam 25.1, sehingga perintah itu tidak akan bekerja untuk Anda.
glucas

Saya melakukan ini setiap Senin pagi
Ricky Nelson

10

Anda dapat menggunakan auto-package-updateuntuk memperbarui paket secara otomatis.

Disalin dari pos saya yang lain ( /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))

Dengan pengaturan itu, paket akan diperbarui setiap 4hari, dan paket lama akan dihapus.



0

Ada paket yang sangat direkomendasikan yang disebut paradox yang memperluas perintah manajemen paket. Baca lebih lanjut dari https://github.com/Malabarba/paradox

(use-package paradox
  :init
  (setq paradox-github-token t)
  (setq paradox-execute-asynchronously t)
  (setq paradox-automatically-star t))

Pengaturan ini mengumpankan statistik penggunaan paket kembali ke sistem menggunakan token github yang diatur secara terpisah dan memperbarui paket di latar belakang saat Anda menjalankan perintah yang paradox-upgrade-packagesterikat secara manual ke kunci pilihan Anda.

Baca dokumentasi sebaris variabel paradox-github-tokententang cara mengaturnya.


0

Cukup masukkan daftar-paket dan pres SHIFT + U. Ini akan menandai semua paket yang diinstal untuk pembaruan.


Ini bisa dibilang tidak sepenuhnya otomatis.
JeanPierre
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.