俺の init.el
はこれを使用してパッケージを初期化します。
(package-initialize)
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/"))
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
(add-to-list 'package-archives '("melpa-stable" . "http://melpa-stable.milkbox.net/packages/"))
私がする時 M-x package-refresh-contents
次のエラーが発生します:Failed to download `gnu' archive.
M-x toggle-debug-on-error
は私にこのスタックトレースを与えます:
Debugger entered--LISP error: (error "Failed to verify signature archive-contents.sig: (\"No public key for 474F05837FBDEF9B created at 2014-09-29T07:20:03-0700 using DSA\")")
signal(error ("Failed to verify signature archive-contents.sig: (\"No public key for 474F05837FBDEF9B created at 2014-09-29T07:20:03-0700 using DSA\")"))
error("Failed to verify signature %s: %S" "archive-contents.sig" ("No public key for 474F05837FBDEF9B created at 2014-09-29T07:20:03-0700 using DSA"))
package--check-signature("http://elpa.gnu.org/packages/" "archive-contents")
package--download-one-archive(("gnu" . "http://elpa.gnu.org/packages/") "archive-contents")
これは私の構成に問題がありますか?どのように修正しますか?
Emacsのバージョンのバグのようです。おそらく、package-check-signature
をnilに設定することで回避できます。
これは設定ミスによるエラーではなく、Emacs 26.3からのpackage-keyring.gpg
ファイルの変更によるものです。リリースから述べたように note :
New GPG key for GNU ELPA package signature checking.
GNU ELPA repository からの新しいパッケージは、この新しいキーリングをチェックするために署名されていると思います。
これを修正する簡単な方法は、Emacs 26.3にアップグレードすることです。
しかし、アップグレードの手間をかけない私のような場合は、package-keyring.gpg
ファイルを here からダウンロードして、Emacsインストール場所のetc/
ディレクトリに配置できます。 。私の場合は/usr/local/share/emacs/26.1/etc/package-keyring.gpg
です。さまざまなプラットフォーム(macOS、Windowsなど)では、インストール方法(apt、yumなど)によって場所が異なる場合があります。
または、パッケージ gnu-elpa-keyring-update をインストールして、将来的にキーリングを自動的に更新することもできます。
署名の問題がない他の人は、パッケージを初期化してみてください
M-x package-initialize
私の問題は、gpg(gnupg)がないことでした。
OSXでは、brew install gpg
を使用して解決しました。
私はArch Linuxにemacsをインストールして開き、package-refresh-contents
を実行してこの問題が発生しました。しばらくして、私はinitファイルがないことに気づきました。この場合は、emacs ~/.emacs.d/init.el
を使用してinitファイルを作成し、次のコンテンツを追加します。
(package-initialize)
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/"))
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
C-x C-s
で保存し、package-refresh-contents
を再度実行します。今回は動作します。