包刷新内容挂起在联系主机:elpa.gnu.org:80

package-refresh-contents hangs at Contacting host: elpa.gnu.org:80

我正在 运行为 Windows 安装 Emacs 24.4(通过 Chocolatey 安装)并尝试安装 CIDER。

当我 运行 M-x package-install [RET] cider [RET] 时,我得到 [No match]。当我 运行 M-x package-refresh-contents [RET] 时,它挂在 Contacting host: elpa.gnu.org:80.

~/.emacs.d 由 braveclojure.com (here) 推荐的 GitHub 存储库填充。我已经重新安装了 Emacs,但我仍然遇到同样的问题。

堆栈溢出sometimes deletes chats。幸运的是,我似乎仍然可以访问成绩单的只读版本。

在我看来,我们没有得到满意的答复。以下是要点:

  1. 我们确定变量 package-archives 只包含 GNU ELPA.

  2. OP发现后写道

    I edited the package.el file. It works!

  3. 我建议编辑核心 Emacs Lisp 文件不是一个好的解决方案,但没有收到 OP 的任何回复。

    自引用 init.el 文件 tries to add MELPA 以来,我认为还有其他事情正在发生。例如,.emacs.d/ 目录可能位于错误的位置。

编辑package.el当然不是一个好的解决办法。做更多的工作来确定为什么配置没有被正确加载将是一个很好的方法。

我在 emacs ELPA wiki 上遇到了同样的问题,他们说要设置 un ELPA,您必须修改位于 ~/.emacs_emacs~/.emacs.d/init.el 的 emacs 初始化文件我是 ~/.emacs-live.el 因为我有这个版本。

我刚刚用以下内容更新了该文件:

(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
                     ("marmalade" . "http://marmalade-repo.org/packages/")
                     ("melpa" . "http://melpa.org/packages/")))

似乎我需要 ELPA 将要从中查找包的配置。

之后我只是 运行 M-x package-refresh-contents [RET]M-x package-install [RET] cider [RET] 安装了苹果酒。


本指南为我解决了这个问题:http://www.lonecpluspluscoder.com/2015/08/adding-tls-support-to-emacs-24-5-on-windows/

基本上转到:http://sourceforge.net/projects/ezwinports/files/,获取 gnutls 库并解压缩 Emacs 目录根目录中的存档。

之后,list-packages 对我来说几乎是即时的。使用 Emacs 24.5.1.

除了设置你的包档案之外,就像之前的回答提到的那样(FWIW 我直接使用 HTTPS)

(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
                         ("marmalade" . "https://marmalade-repo.org/packages/")
                         ("melpa" . "https://melpa.org/packages/")))

可能会遇到另一个问题,但由于 运行 gpg 在批处理模式下验证包,但需要一些输入,因此出现相同的卡在 "Contacting host" 的症状。您可以通过

禁用它
(setq package-check-signature nil)

我在 Ubuntu 16.04 中遇到了与 Emacs 24 相同的问题,似乎没有什么可以解决问题。最后安装Emacs 25解决了问题

新的 Emacs 软件包可用 here

sudo add-apt-repository ppa:kelleyk/emacs
sudo apt-get update
apt-get install emacs27

问题是 ELPA 包签名密钥已过期。新的 Emacs 版本将包含一个新密钥。请注意,目前(2020 年 10 月)Emacs 27 可用于 Ubuntu 16.04.

还要确保您使用 https 网址(而不是普通的 http)。

另一种可能是install new keys to an older Emacs version.

Windows 二进制文件也可能在某处可用。

我在 Emacs 24.5.1 上遇到过这个问题。
我在 SO 和 SO 之外进行了搜索,但对我没有任何帮助。我不得不通过安装更新​​版本的 Emacs 来解决这个问题:emacs25。