package.el署名チェックの失敗を続行する方法


25

を介しascii-art-to-unicodeてgnuリポジトリ(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")

パッケージを管理するためにcask / palletを使用しています。私が逃したセットアップがありますか?elpaの最近の変更点

emacs 24.4プレリリースを使用しています。


1
今日、elpaからorg-modeを更新するときに同様の問題が発生しました(package.elを使用しましたが)。サーバーの一時的な問題の可能性があります。
マラバルバ14

回答:


7
  1. セットpackage-check-signaturenil
  2. パッケージgnu-elpa-keyring-updateをダウンロードし、同じ名前で関数を実行します。
  3. package-check-signatureデフォルト値「allow-unsigned」にリセットします

これは私のために働いた。


1
関数を明示的に実行する必要はありません。パッケージをインストールするだけで、関数が自動的に実行されるので十分です。
ステファン

ああ 動作するのでテストするのは難しいですが、あなたは正しいと思います。
joe_maya

14

FWIW-署名org-20140407.tar.sigでこの問題が発生しました。Sigmaのpackage-check-signatureallow-unsignedです。

package-check-signatureの値をnilに変更すると、問題は解決しました。


ありがとう!「許可されていない」とは、それが何を意味するのかを意味するものではないことを私は決して思いません...
avp

2
nilに設定する場合は、必ずelpa.gnu.orgHTTPS経由でリポジトリにアクセスしてください。そうしないと、簡単なセキュリティ攻撃にさらされることになります。
ステファン

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 16

allow-unsigned署名されているが署名を確認できないパッケージとは対照的に、署名されていないパッケージのインストールを許可することを意味します。これは、パッケージに署名しないELPAアーカイブからインストールできるようにするために使用されます(MELPAは前回チェックしたときのようでした)。
ステファン

4

パッケージをインストールしようとするとgnu-elpa-keyring-update(パッケージマネージャーが使用するキーを更新する目的があるようです)、その説明に次のように表示されます。

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

コマンドラインで、新しいキーを手動で取得します。正しいキーを要求していることを確認するには(066DAFCB81E42C40上記の例)、パッケージをインストールしようとしたときにemacsから表示されるエラーメッセージを確認します。


1

または、Ubuntuなどの新しいemacsにアップグレードすることもできます。

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これが修正されました。

Fedora 29、GNU Emacs 26.2(ビルド1、x86_64-redhat-linux-gnu、GTK +バージョン3.24.8)2019-04-30

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.