Câu trả lời:
Tôi không chắc đây là điều bạn muốn (Tôi không biết ý của bạn là gì trong điều kiện nhất định phạm vi), nhưng đây là chức năng tôi sử dụng để nâng cấp tất cả các gói mà không hiển thị *Packages*bộ đệm, tôi thấy khó chịu khi tôi chỉ muốn để nâng cấp các gói.
(defun package-upgrade-all ()
"Upgrade all packages automatically without showing *Packages* buffer."
(interactive)
(package-refresh-contents)
(let (upgrades)
(cl-flet ((get-version (name where)
(let ((pkg (cadr (assq name where))))
(when pkg
(package-desc-version pkg)))))
(dolist (package (mapcar #'car package-alist))
(let ((in-archive (get-version package package-archive-contents)))
(when (and in-archive
(version-list-< (get-version package package-alist)
in-archive))
(push (cadr (assq package package-archive-contents))
upgrades)))))
(if upgrades
(when (yes-or-no-p
(message "Upgrade %d package%s (%s)? "
(length upgrades)
(if (= (length upgrades) 1) "" "s")
(mapconcat #'package-desc-full-name upgrades ", ")))
(save-window-excursion
(dolist (package-desc upgrades)
(let ((old-package (cadr (assq (package-desc-name package-desc)
package-alist))))
(package-install package-desc)
(package-delete old-package)))))
(message "All packages are up to date"))))
Đây là cố gắng tốt. Nó cũng ngăn chặn bộ đệm biên dịch bật lên.
(y-or-n-p (message ..))thay vì chỉ (y-or-n-p ...)?
message, có vẻ như nó cũng có thể được thực hiện format.
format. Rõ ràng bạn không thể làm điều đó mà không có bất kỳ loại nội suy chuỗi nào.
Bạn có thể sử dụng tự động cập nhật gói .
Cài đặt nó bằng cách M-x package-install auto-update-package. Nó cung cấp một chức năng được gọi là auto-package-update-now. Bạn có thể viết một ifđiều kiện đơn giản và thêm nó vào .emacs.
(if your-condition
(auto-package-update-now))
Gói này được gọi là cập nhật gói tự động. (Danh tiếng quá thấp để viết nó như một bình luận cho bài viết Chillar ở trên).
(Sao chép từ bài đăng của anh ấy và hợp nhất với câu trả lời này):
Cài đặt nó bằng cách M-x package-install auto-package-update. Nó cung cấp một chức năng được gọi là auto-package-update-now. Bạn có thể viết một điều đơn giản nếu điều kiện và thêm nó vào ~/.emacs.
(if your-condition
(auto-package-update-now))
paradoxbằngpackage).