Ошибка обновления пакетов 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
снова. На этот раз это будет работать.