जवाबों:
मुझे यकीन नहीं है कि यह वही है जो आप चाहते हैं (मुझे नहीं पता कि आपके "कुछ शर्तों के तहत" से क्या मतलब है), लेकिन यहां एक फ़ंक्शन है *Packages*
जो मैं बफर को दिखाए बिना सभी पैकेजों को अपग्रेड करने के लिए उपयोग करता हूं , जो मुझे सिर्फ जब मैं चाहता हूं तो मुझे गुस्सा आता है पैकेज का उन्नयन करने के लिए।
(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-or-n-p (message ..))
बस के बजाय क्यों करते हैं (y-or-n-p ...)
?
message
, ऐसा लगता है कि यह format
बस के साथ भी किया जा सकता है ।
format
। जाहिर है आप इसे किसी भी प्रकार के स्ट्रिंग इंटरपोलेशन के बिना नहीं कर सकते।
आप ऑटो-पैकेज-अपडेट का उपयोग कर सकते हैं ।
द्वारा स्थापित करें M-x package-install auto-update-package
। यह नामक एक फ़ंक्शन प्रदान करता है auto-package-update-now
। आप एक साधारण if
शर्त लिख सकते हैं और उसे अपने साथ जोड़ सकते हैं .emacs
।
(if your-condition
(auto-package-update-now))
पैकेज को अब ऑटो-पैकेज अपडेट कहा जाता है। (ऊपर कम चिल्लर पोस्ट के लिए एक टिप्पणी के रूप में लिखने के लिए बहुत कम प्रतिष्ठा)।
(उनके पद से कॉपी किया गया और इस उत्तर के साथ विलय):
द्वारा स्थापित करें M-x package-install auto-package-update
। यह नामक एक फ़ंक्शन प्रदान करता है auto-package-update-now
। आप एक साधारण लिख सकते हैं यदि शर्त और इसे अपने में जोड़ें ~/.emacs
।
(if your-condition
(auto-package-update-now))
paradox
साथ बदलेंpackage
)।