Emacs 自动完成更新后损坏:未提供必需的 'popup' 功能

Emacs auto-complete broke after update: required 'popup' feature not provided

更新过时的软件包后,auto-complete(及其依赖项 ac-slime)出现错误 "Required feature 'popup' is not provided"。检查 elpa 目录显示 popup 在那里。使用 byte-recompile-directory 重新编译 elpa 目录中的所有内容并没有解决问题(popup.elpopup.elc 都存在,但 auto-complete 仍然失败)。

PS。进一步检查发现其他一些软件包失败,因为 xml-prc 不存在,但 Emacs 显示它已安装并且确实存在于 elpa 目录中。

让 Emacs 重新工作的步骤是什么?

由于还没有其他答案(我希望会有一个真实的答案!),以下是同时有效的方法:

基本上,在软件包更新过程中出了点问题——不知道具体是什么。通常,elpa 目录中的 byte-recompile-directory 有助于解决问题:它会重新编译所有包文件,并且在重新启动 Emacs 后通常可以毫无问题地加载它们。然而这一次,它没有帮助。所以我使用了更严厉的措施:我删除了 elpa 目录形式 ~/.emacs.d (或者实际上我把它移走了),然后重新启动了 Emacs。

我的 .emacs 文件包含如果丢失需要安装的包列表,所以所有包 re-installation 自动发生,我只需要等待(大约 30 分钟)Emacs开始。

(这是一个众所周知的技巧,但如果你感兴趣,这里是来源on github

但这个解决方案并不理想,我希望有更清洁的东西。