Perbarui paket secara otomatis dan hapus versi lama

12

Saya agak kompulsif tentang memperbarui paket untuk semua sistem saya, jadi saya menemukan diri saya menjalankan list-packages-> U-> x-> y-> ycukup banyak setiap hari untuk memperbarui paket saya dan menghapus versi lama setelah pembaruan selesai. Bagaimana saya mengotomatiskan proses ini sehingga setidaknya saya harus menjalankan hanya satu fungsi untuk memperbarui, mengkompilasi, dan menghapus paket saya? Atau ada beberapa alasan saya mungkin tidak ingin melakukan itu?

Ryan
sumber

Jawaban:

17

Berikut ini sekarang bagian dari paket Paradox. Hanya memohon paradox-upgrade-packages.


Ini harus dilakukan.

(defun endless/upgrade ()
  "Upgrade all packages, no questions asked."
  (interactive)
  (save-window-excursion
    (list-packages)
    (package-menu-mark-upgrades)
    (package-menu-execute 'no-query)))

Cukup periksa fungsi mana yang dipanggil oleh setiap langkah yang Anda sebutkan, dan lemparkan ke dalam fungsi interaktif. Biasanya, (y or n)prompt akan menjadi masalah, tetapi dengan package-menu-executemudah mengambil NO-QUERYargumen.

Malabarba
sumber
Jika semua paket terbaru, itu akan kembali No operations specified.
ChillarAnand
3

Anda dapat mengotomatiskan ini dengan Tong . Ini berfungsi untuk pengembangan paket, tetapi juga untuk konfigurasi pengguna. The dokumentasi memberikan rincian untuk pengaturan ini.

Selain itu, Pallet berguna untuk menjaga file Cask Anda tetap mutakhir dengan perubahan yang Anda buat di buffer * Packages *.

Kyle Meyer
sumber
+1 Tong + Palet sangat bagus (tapi saya tidak menyarankan menggunakannya di Windows).
rsenna
Hmm, itu masalah, karena saya sering menggunakan Windows.
Ryan
@ rsenna Terima kasih atas informasinya. Saya tidak menjalankan sistem Windows, jadi saya tidak tahu mereka tidak bermain dengan baik.
Kyle Meyer
Bahkan Anda bisa menggunakan Tong + Pallet di Windows, dengan beberapa pekerjaan. Saya dapat mencapainya dengan menggunakan Cygwin, tetapi saya ingat itu jauh dari mudah ...
rsenna
Tong akan bekerja dengan baik di Windows setelah Anda menginstal Python. Saya tidak yakin tentang Pallet karena saya belum diuji. Tetapi dari melihat repo itu seharusnya tidak tergantung pada apa pun selain Tong + Emacs.
Jonathan Leech-Pepin
0

Bagaimana dengan pembaruan paket otomatis ?

Versi lama dapat dihapus dengan penyesuaian ini:

(setq auto-package-update-delete-old-versions t)

zhanxw
sumber