Ошибка обновления пакетов 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")

Это проблема с моей конфигурацией, и как я могу это исправить?

4 ответа

Решение

Похоже, ошибка в вашей версии Emacs. Вы, вероятно, можете обойти это, установив package-check-signature до нуля

Это ошибка не из-за неправильной настройки, а из-за изменения файла. package-keyring.gpgиз Emacs 26.3. Как указано в примечании к выпуску:

New GPG key for GNU ELPA package signature checking.

Я считаю, что новые пакеты из репозитория GNU ELPA подписаны для проверки этой новой связки ключей.

Самый простой способ исправить это - перейти на Emacs 26.3.

Но если бы вы были похожи на меня и не беспокоились об обновлении, вы могли бы скачать package-keyring.gpgфайл отсюда и поместите его вetc/каталог в месте установки Emacs. В моем случае это/usr/local/share/emacs/26.1/etc/package-keyring.gpg. Это могут быть разные места для разных методов установки (apt, yum и т. Д.) На разных платформах (macOS, Windows и т. Д.).

Как вариант, вы можете попробовать установить пакет gnu-elpa-keyring-update для автоматического обновления связки ключей в будущем.

Для тех, у кого нет проблем с подписью, попробуйте инициализировать пакет

M-x package-initialize

Моя проблема была в том, что мне не хватало gpg (gnupg).

На OSX я решил это с помощью brew install gpg,

Я установил emacs на Arch Linux, открыл его, запустил package-refresh-contents и получил эту проблему. Через некоторое время я понял, что у меня нет файла инициализации. Если это ваш случай, создайте файл инициализации с помощью emacs ~/.emacs.d/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/"))

Сохраните это с C-x C-s и беги package-refresh-contents снова. На этот раз это будет работать.

Другие вопросы по тегам