【问题标题】:Is it possible to downgrade packages installed with ELPA?是否可以降级使用 ELPA 安装的软件包?
【发布时间】:2014-02-05 23:40:29
【问题描述】:

我今天用 ELPA 更新了我在 emacs 中的包,更新后我被困在了

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

错误。 既然不容易调试,那更新的包能不能降级呢?我在哪里可以找到 ELPA 日志,在那里我可以获得这些软件包的早期版本?

【问题讨论】:

  • 尝试将 (setq debug-on-error t) 添加到您的 .emacs 文件中,然后重新启动 Emacs 以查看是否得到更好的错误报告。一种选择是重命名您的 elpa 目录 - 例如,elpa-original,然后一次下载每个包的最新版本,并在下载下一个包之前尝试每个包。您可能会发现您可以全部安装它们并且没有错误,或者您可能会发现有问题的软件包,因为您一次安装一个并在每次安装后重新启动 Emacs。而且,事后看来,开始更频繁地备份您的 Emacs 安装。
  • 这是(原因之一)我将整个 Emacs 配置置于版本控制之下的原因。如果我升级了一个库并且它破坏了它,我只是将它还原。我建议也这样做。
  • 你能修改一下标题吗?您选择的答案实际上并没有回答您的问题。

标签: emacs elpa


【解决方案1】:

我在您的~/.emacs 文件中将@lawlist 的建议放在(setq debug-on-error t) 的前面。您也可以使用emacs --debug-init 来获得类似的结果。这就是说,有时您在这里遇到的错误也会阻止调试器出现。我推荐您M-x report-emacs-bug 并描述问题以及您找到的任何其他信息,包括您找到的解决方案(如果有)。

至于降级软件包,在技术上是可行的,但没有 UI 支持。而且也没有软件包安装日志。请务必在错误报告中提及这一点,因为尝试跟踪这些内容确实是个好主意。

对不起。

【讨论】:

  • 这并没有回答“我在哪里可以获得这些软件包的早期版本”的问题
  • 对于 GNU ELPA 软件包,如果您访问 elpa.gnu.org/packages,那里的每个软件包都带有一个过去版本的列表。您可以手动下载并安装它们,但如前所述,没有 UI 支持。
  • 谢谢@stefan。而且,如果您使用包管理来更新包,它可能不会选择删除过时的包,至少一开始是这样的......因此可以轻松恢复到旧版本。
  • 好吧,org-table 上的命名列现在一周不能工作,错误“无效的表范围说明符”。我意识到知道如何降级软件包非常重要。
  • 我建议您M-x report-emacs-bug 并请求该功能。我认为如果您启用url-handlers-mode,则可以执行M-x package-install-file RET http://elpa.gnu.org/packages/org/org-<vers>.tar 以降级到特定版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-24
相关资源
最近更新 更多