उपयोग-पैकेज के साथ स्थापित पैकेज को कैसे अपडेट करें


24

मैं use-packageपैकेजों को स्थापित और कॉन्फ़िगर करने के लिए उपयोग कर रहा हूं (इन पैकेजों में से अधिकांश मेलपा में हैं)। क्या इन सभी पैकेजों को अप-टू-डेट रखने का एक स्वच्छ स्वचालित तरीका है?

यदि नहीं, तो इस मामले में सबसे अच्छा काम प्रवाह क्या है?

नोट: यहां एक उत्तर के साथ एक बहुत ही समान प्रश्न है , लेकिन मुझे "आपको अभी भी अपडेट स्थापित करने से निपटने की आवश्यकता होगी" पर स्पष्टीकरण चाहिए था। मैं स्पष्टीकरण के जवाब पर टिप्पणी नहीं कर सका क्योंकि मेरे पास पर्याप्त प्रतिष्ठा नहीं है।

जवाबों:


17

मैं इसे केवल मैन्युअल रूप से करता हूं: उपलब्ध उन्नयन को चिह्नित करने के लिए 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या शेष तीन स्थितियों में से कोई भी खाली सूची देता है।
Jaagrit Sapana

Emacs के किस संस्करण का उपयोग कर रहे हैं?
ग्लूकोज

मैं २४.५.१ का उपयोग कर रहा हूं
२२:

आह अच्छा। मैंने जाँच की और package-menu-filterकमांड 25.1 में नया है, ताकि कमांड आपके लिए काम न करे।
ग्लूकास

मैं हर सोमवार सुबह ऐसा करता हूं
रिकी नेल्सन

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

epmअपडेट प्रक्रिया को साफ रखने की कोशिश करें ।

सीएफ https://github.com/xuchunyang/epm

यह सामान्य init.el सेटिंग लोड किए बिना, emacs बैच प्रक्रिया के भीतर अपडेट प्रक्रिया चला सकता है।


0

एक अत्यधिक अनुशंसित पैकेज है जिसे पैराडॉक्स कहा जाता है जो पैकेज प्रबंधन कमांड का विस्तार करता है। Https://github.com/Malabarba/paradox से और पढ़ें

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

जब आप मैन्युअल रूप paradox-upgrade-packagesसे अपनी पसंद की कुंजियों के लिए बाध्य कमांड चलाते हैं, तो यह सेटअप बैकग्राउंड टोकन और अपडेट पैकेजों का उपयोग करके सिस्टम में वापस पैकेज उपयोग के आंकड़ों को फीड करता है ।

paradox-github-tokenइसे स्थापित करने के तरीके पर चर के इनलाइन प्रलेखन पढ़ें ।


0

बस सूची-संकुल दर्ज करें और SHIFT + U को निर्धारित करें। यह एक अद्यतन के लिए सभी स्थापित पैकेजों को चिह्नित करेगा।


यकीनन यह पूरी तरह से स्वचालित नहीं है।
जीनपायर्रे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.