更新emacs包时出错:无法下载'gnu'存档

yay*_*wei 19 emacs checksum elpa melpa

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/"))
Run Code Online (Sandbox Code Playgroud)

当我这样做时,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")
Run Code Online (Sandbox Code Playgroud)

这是我的配置问题,我该如何解决?

Ste*_*fan 18

看起来像您的Emacs版本中的错误.您可以通过设置package-check-signature为nil来规避它.

  • 24.3.50表示"24.4开发期间代码的一些快照".我们在4月左右搬到了24.3.90,所以你的快照现在很古老(一个月以上的快照已经"老了")并且值得退休. (2认同)
  • 这是Fedora 21中emacs-24.4的同样问题 (2认同)

小智 13

我的问题是我错过了gpg(gnupg).

在OSX上我通过使用解决了这个问题brew install gpg.

  • Bug是#19409(https://lists.gnu.org/archive/html/bug-gnu-emacs/2014-12/msg00781.html); 如果我理解正确,ELPA自2014年9月起(至少)已被打破,因为一些小丑用钥匙签了一个他们没有发布的包......似乎没有人关心. (11认同)

H.R*_*iee 11

对于没有签名问题的其他人,请尝试初始化包装

M-x package-initialize


Lei*_*hao 11

这不是由于配置错误而引起的错误,而是由于package-keyring.gpg从Emacs 26.3 更改了文件。如发行说明所述

New GPG key for GNU ELPA package signature checking.
Run Code Online (Sandbox Code Playgroud)

我相信来自GNU ELPA 储存库的较新软件包已签名以供此新密钥环检查。

修复它的简单方法是升级到Emacs 26.3。

但是,如果您像我一样不费心升级,则可以package-keyring.gpg此处下载文件,并将其放在etc/Emacs安装位置下的目录中。就我而言,是/usr/local/share/emacs/26.1/etc/package-keyring.gpg。在各种平台(macOS,Windows等)上,不同安装方法(apt,yum等)的位置可能不同。

或者,您可以尝试安装软件包gnu-elpa-keyring-update以在将来自动更新密钥环。