ELPA安装的软件包可以降级吗?

15

我今天使用ELPA更新了我的emacs包,更新后我遇到了

变量绑定深度超过了max-specpdl-size

的错误。 由于很难进行调试,是否有可能降级更新的包?在哪里可以找到ELPA日志以获取这些包的先前版本?


2
尝试在您的.emacs文件中添加(setq debug-on-error t),然后重新启动Emacs,以查看是否获得更好的错误报告。一种选择是重命名您的elpa目录--例如,elpa-original,然后逐个下载每个软件包的最新版本,并在下载下一个软件包之前尝试每个软件包。您可能会发现您能够安装所有软件包并且没有错误,或者您可能会发现有问题的软件包,因为您是逐个执行并在每次安装后重新启动Emacs。此外,在事后,开始更频繁地备份您的Emacs安装。 - lawlist
3
这就是我把整个Emacs配置都放在版本控制下的原因之一。如果我升级一个库,结果出了问题,我只需还原到以前的版本即可。我建议你也这样做。 - phils
你能修改标题吗?你选择的答案实际上并没有回答你的问题。 - 象嘉道
1个回答

5
我支持@lawlist的建议,在您的~/.emacs文件中及早设置(setq debug-on-error t)。您还可以使用emacs --debug-init获得类似的结果。然而,有时候这里出现的错误类型也可能会阻止调试器的显示。我建议您 M-x report-emacs-bug并描述问题,以及您找到的任何其他信息,包括您找到的解决方案(如果有)。
至于降级一个软件包,技术上是可能的,但没有UI支持。而且也没有软件包安装日志。请在bug报告中提及这一点,因为尝试跟踪这些事情确实是个好主意。
很抱歉。

4
这并没有回答“我在哪里可以获取这些软件包的早期版本”的问题。 - malcook
1
对于GNU ELPA软件包,如果您访问http://elpa.gnu.org/packages,则该网站上的每个软件包都附带有过去版本的列表。虽然您可以手动下载和安装它们,但正如先前提到的,没有UI支持来实现这一点。 - Stefan
感谢@stefan。如果您使用软件包管理器更新软件包,最好不要选择删除过时的软件包选项,至少在一开始时不要这样做...这样可以轻松恢复到旧版本。 - malcook
好的,org-table上的命名列已经一个星期无法使用了,出现了“无效的表范围指定器”的错误。我意识到了知道如何降级软件包是非常重要的。 - RUserPassingBy
1
我建议您使用 M-x report-emacs-bug 并请求该功能。我认为如果您启用 url-handlers-mode,则可以执行 M-x package-install-file RET http://elpa.gnu.org/packages/org/org-<vers>.tar 以降级到特定版本。 - Stefan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接