web-dev-qa-db-ja.com

emacsパッケージの更新エラー: 'gnu'アーカイブのダウンロードに失敗しました

俺の 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")

これは私の構成に問題がありますか?どのように修正しますか?

25
yayitswei

Emacsのバージョンのバグのようです。おそらく、package-check-signatureをnilに設定することで回避できます。

19
Stefan

これは設定ミスによるエラーではなく、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 をインストールして、将来的にキーリングを自動的に更新することもできます。

15
Lei Zhao

署名の問題がない他の人は、パッケージを初期化してみてください

M-x package-initialize

14
H.Rabiee

私の問題は、gpg(gnupg)がないことでした。

OSXでは、brew install gpgを使用して解決しました。

13

私は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を再度実行します。今回は動作します。

0
e18r