Подтвердить что ты не робот

Ошибка обновления пакетов emacs: Не удалось загрузить архив 'gnu'

My 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")

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

4b9b3361

Ответ 1

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

Ответ 2

Моя проблема заключалась в том, что мне не хватало gpg (gnupg).

В OSX я решил это, используя brew install gpg.

Ответ 3

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

.M-x package-initialize

Ответ 4

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

New GPG key for GNU ELPA package signature checking.

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

Самый простой способ исправить это - обновить 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, чтобы автоматически обновлять связку ключей в будущем.

Ответ 5

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