कैसे पैकेज पर आगे बढ़ना है। हस्ताक्षर हस्ताक्षर विफलता


34

मैंने सिर्फ ascii-art-to-unicodeग्नो रिपॉजिटरी ( http://elpa.gnu.org/ ) के माध्यम से स्थापित करने की कोशिश की list-packages। मुझे निम्नलिखित त्रुटि मिलती है:

package--check-signature: Failed to verify signature 
   ascii-art-to-unicode-1.9.el.sig: ("No public key 
   for 474F05837FBDEF9B created at 2014-09-24T16:20:01+0200 
   using DSA")

मैं अपने पैकेजों को प्रबंधित करने के लिए पीपा / फूस का उपयोग कर रहा हूं; वहाँ कुछ सेटअप मैं याद किया है? हाल ही में एल्पा में कुछ बदलाव?

मैं एक emacs का उपयोग कर रहा हूँ 24.4 पूर्व-रिलीज़।


1
मुझे आज भी इसी तरह की समस्या थी जो कि elpa से org-mode को अपडेट कर रही थी (हालाँकि मैंने package.el का उपयोग किया था)। उनके सर्वर के साथ एक अस्थायी समस्या हो सकती है।
मालाबार

जवाबों:


16
  1. सेट package-check-signatureकरने के लिए nil, जैसेM-: (setq package-check-signature nil) RET
  2. पैकेज डाउनलोड करें gnu-elpa-keyring-updateऔर फ़ंक्शन को उसी नाम से चलाएं, जैसे M-x package-install RET gnu-elpa-keyring-update RET
  3. package-check-signatureडिफ़ॉल्ट मान 'अनुमति-अहस्ताक्षरित' पर रीसेट करें

इसने मेरे लिए काम किया।


2
फ़ंक्शन को स्पष्ट रूप से चलाने के लिए आवश्यक नहीं होना चाहिए: पैकेज स्थापित करना पर्याप्त होना चाहिए क्योंकि यह आपके लिए फ़ंक्शन को स्वचालित रूप से चलाना चाहिए।
स्टीफन

अच्छा ठीक है। यह परीक्षण करना कठिन है कि यह काम करता है, लेकिन मुझे लगता है कि आप सही हैं।
जो_मैया

14

FWIW - मेरे पास यह मुद्दा था हस्ताक्षर के साथ org-20140407.tar.sig। जैसा सिग्मा के पैकेज की जांच-हस्ताक्षर / था है की अनुमति देते हैं-अहस्ताक्षरित

मैंने पैकेज-चेक-सिग्नेचर वैल्यू को शून्य में बदल दिया और समस्या का समाधान कर दिया गया।


धन्यवाद! मैं कभी भी यह अनुमान नहीं लगाऊंगा कि "अनुमति-अहस्ताक्षरित" का मतलब यह नहीं है कि इसका क्या मतलब है ...
avp

2
यदि आप इसे शून्य पर सेट करते हैं, तो सुनिश्चित करें कि आप elpa.gnu.orgHTTPS के माध्यम से रिपॉजिटरी का उपयोग करते हैं , अन्यथा आप अपने आप को आसान सुरक्षा हमलों के लिए खोल रहे हैं।
स्टीफन

10

यदि आप पैकेज को स्थापित करने की कोशिश करते हैं gnu-elpa-keyring-update(जो पैकेज प्रबंधक द्वारा उपयोग की जाने वाली कुंजियों को अपडेट करने का उद्देश्य है), तो आप इसके विवरण में देखेंगे कि आप क्या कर सकते हैं:

gpg --homedir ~/.emacs.d/elpa/gnupg --receive-keys 066DAFCB81E42C40

मैन्युअल रूप से नई कुंजी प्राप्त करने के लिए कमांडलाइन पर। यह सुनिश्चित करने के लिए कि आप सही कुंजी के लिए पूछ रहे हैं ( 066DAFCB81E42C40ऊपर के उदाहरण में), उस त्रुटि संदेश की जांच करें जो आपको किसी भी पैकेज को स्थापित करने का प्रयास करते समय एमएसीएस देता है।


4

ऐसा प्रतीत होता है कि इस पैकेज (474F05837FBDEF9B) पर हस्ताक्षर करने के लिए उपयोग की जाने वाली कुंजी वास्तव में प्रकाशित नहीं है (इसलिए हस्ताक्षर नहीं किए जा सकते, इसलिए इस पर भरोसा नहीं किया जा सकता)। लेकिन ऐसा लगता है कि इस तरह के मामलों में package.el को ग्रेसफुल (अभी के लिए) विफल होना चाहिए:

;; If package-check-signature is allow-unsigned, don't
;; signal error when we can't verify signature because of
;; missing public key.  Other errors are still treated as
;; fatal (bug#17625).
(unless (and (eq package-check-signature 'allow-unsigned)
             (eq (epg-signature-status sig) 'no-pubkey))
  (setq had-fatal-error t))

इसलिए मैं सोच रहा हूं कि क्या किसी कारण से आपका मूल्य package-check-signatureइसके डिफ़ॉल्ट मूल्य से अलग है allow-unsigned?


package-check-signatureहै allow-unsigned; कि epg-signature-status- हम्म छोड़ देता है ।
टॉम रेगनर

sig=[cl-struct-epg-signature bad 474F05837FBDEF9B nil nil nil nil nil nil nil nil nil] status=bad- ध्यान दें कि समस्या अभी भी मौजूद है।
sds

allow-unsignedउन पैकेजों की स्थापना की अनुमति देने के लिए जो हस्ताक्षरित नहीं हैं, उन पैकेजों के विपरीत, जो हस्ताक्षरित हैं, लेकिन जिनके हस्ताक्षर आप सत्यापित नहीं कर पा रहे हैं। यह उपयोग किया जाता है ताकि आप ELPA अभिलेखागार से स्थापित कर सकें जो उनके पैकेज पर हस्ताक्षर नहीं करते हैं (MELPA ऐसा था जो पिछली बार मैंने जाँच किया था)।
स्टीफन

1

वैकल्पिक रूप से, आप उबंटू पर एक नए एमएसीएस में अपग्रेड कर सकते हैं:

sudo add-apt-repository ppa:ubuntu-elisp/ppa
sudo apt-get update
sudo apt-get install emacs-snapshot

1

इसके साथ पगड़ी की चाबी प्राप्त करें:

gpg2 --homedir ~/.emacs.d/elpa/gnupg --receive-keys 066DAFCB81E42C40

ध्यान दें: आपका संस्करण एक अलग कुंजी हो सकता है!



0

स्थापना package-check-signatureके लिए nilडिफ़ॉल्ट के बजाय allow-unsignedमेरे लिए यह तय हो गई।

2019-04-30 का फेडोरा 29, जीएनयू एमएसीएस 26.2 (बिल्ड 1, x86_64-redhat-linux-gnu, GTK + संस्करण 3.24.8)

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