Emacs 27.1安装use-package失败:包不可用及签名验证错误
解决Emacs配置中的use-package安装问题
问题1:error: Package ‘use-package-’ is unavailable
这个错误的核心是仓库配置语法错误,你的package-archives设置存在括号和列表结构问题。原代码的写法破坏了列表嵌套结构,导致package.el无法正确识别仓库源:
(setq package-archives '("melpa" . "https://melpa.org/packages/") ("elpa" . "https://elpa.gnu.org/packages/")))
修正后的正确写法:
(require 'package) (setq package-archives '(("melpa" . "https://melpa.org/packages/") ("elpa" . "https://elpa.gnu.org/packages/")))
问题2:Failed to verify signature: bind-key-2.4.1.tar.sig
签名验证失败通常是本地GPG密钥未同步或Emacs签名配置导致的,针对新手提供两种解决方案:
临时快速解决方案
在package-initialize前添加配置关闭包签名验证,直接绕过问题:
(setq package-check-signature nil)
完整的包管理初始化代码修改后:
(require 'package) (setq package-archives '(("melpa" . "https://melpa.org/packages/") ("elpa" . "https://elpa.gnu.org/packages/"))) ;; 临时关闭签名验证 (setq package-check-signature nil) (package-initialize) (unless package-archive-contents (package-refresh-contents))
永久解决方案(配置GPG密钥)
如果后续想启用签名验证,可同步官方密钥:
- 打开Emacs执行
M-x package-refresh-contents - 复制提示中缺失的密钥ID(例如
066DAFCB81E42C40) - 在终端执行:
gpg --recv-keys 密钥ID(替换为你获取的ID) - 重启Emacs后重新尝试安装
完整修正后的包管理配置片段
将你原配置中的包管理部分替换为以下代码即可:
;; Verifica e inicia o package.el (require 'package) ;; Definição de repositórios(修正语法) (setq package-archives '(("melpa" . "https://melpa.org/packages/") ("elpa" . "https://elpa.gnu.org/packages/"))) ;; 临时关闭签名验证(可选,解决bind-key签名问题) (setq package-check-signature nil) ;; Inicialização do sistema de pacotes (package-initialize) (unless package-archive-contents (package-refresh-contents)) ; Instalação do use-package (unless (package-installed-p 'use-package) (package-install 'use-package)) (require 'use-package) (setq use-package-always-ensure t)
额外注意事项
- 重启Emacs前,建议删除
~/.emacs.d/elpa/下可能损坏的bind-key相关文件夹,避免残留问题 - Emacs 27及以上版本会自动执行
package-initialize,可省略该语句,但保留也不会产生冲突
内容的提问来源于stack exchange,提问作者Caio Vitor
相关产品推荐
相关产品推荐

