Emacs 27.2刷新MELPA源后仍无法搜索到go-mode等部分包如何解决?
问题排查及解决步骤
- 确认配置是否正确加载
启动Emacs后执行M-x customize-variable RET package-archives RET,查看返回的列表中是否包含("melpa" . "https://melpa.org/packages/")条目。如果没有,说明你的init.el未被正确加载:排查是否存在~/.emacs配置文件覆盖了~/.emacs.d/init.el的配置,或是Emacs启动时未找到对应配置文件。 - 修复Emacs 27版本TLS兼容问题
你使用的Emacs 27.2版本默认TLS配置与MELPA的TLS 1.3加密规则存在兼容问题,会导致包源刷新静默失败,表面显示刷新成功但实际没有拉取到最新包列表,这也是你能正常用Spacemacs的原因:Spacemacs默认已经内置了该问题的修复配置。你可以在init.el开头添加以下配置修复:
添加后重启Emacs,依次执行;; 修复Emacs 27与MELPA的TLS 1.3兼容问题 (setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")M-x package-refresh-contents、M-x package-list-packages刷新包列表后再搜索即可。 - 临时验证方案
如果上述配置仍不生效,可以先做临时测试定位问题:将init.el中的MELPA地址替换为HTTP版本("melpa" . "http://melpa.org/packages/"),或是临时添加(setq package-check-signature nil)关闭签名校验,测试是否能正常拉取包列表。验证问题根源后要改回HTTPS地址并移除关闭签名校验的配置,保证安装安全。 - 查看错误日志定位
如果以上步骤都未解决,执行M-x package-refresh-contents后打开*Messages*缓冲区,查看是否有包源下载失败的相关报错,根据报错信息进一步定位即可。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

