我已经使用Emacs将近40年了,几乎没有什么比melpa-stable中不断损坏的苹果酒包装更令人沮丧的了。
我的包列表中只有两个条目
package-archive是‘package.el’中定义的变量。它的值是
(("gnu" . "http://elpa.gnu.org/packages/")
("melpa-stable" . "http://melpa.milkbox.net/packages/"))
在今天之前的一段时间里,我一直在使用cider-0.17.0-SNAPSHOT和相应的nrepl版本号。但我在Emacs包管理器中进行了更新,它加载了一个包含昨天日期(2018年1月22日)的cider-0.17-0-SNAPSHOT。
现在,在昨天工作的每个项目(10+)中,用苹果酒启动苹果酒会产生一个“错误:未处理的REPL处理程序异常处理消息”和一个巨大的堆栈跟踪。
有趣的是,如果您将project.clj中的nrepl依赖项替换为较旧的版本,例如[ cider /cider-nrepl "0.16.0",则会启动cider-jack-in,但会给出一个警告,即苹果酒和苹果酒-nrepl版本不同,并且“情况将会崩溃”。
因此,经过几个小时的工作,我已经从一个工作的苹果-0.17.0-快照系统(直到melpa稳定的1月22日更新到苹果-0.17.0-快照)再次工作的苹果-0.16.0系统。
那么腐败发生在哪里呢?GitHub上的melpa-稳定标签是0.16.0,但不知何故,在我的软件包列表中只有melpa-稳定(+ gnu),损坏的0.17.0-SNAPSHOT正在加载。
如果没有很多Git的痛苦,我真的不需要,我找不到1月22日之前的苹果酒-0.17.0快照和Jan22快照之间的区别。
因此,唯一的选择是返回到手动安装cider-0.16.0并返回到相应的nrepl版本。但在有人用坏了的快照破坏melpa-stable之前,使用cider-0.17.0-SNAPSHOT都工作得很好。
破碎的狗屎不属于melpa-stable。
我们如何将melpa-稳定修复为稳定?
发布于 2018-01-24 21:11:49
很长一段时间以来,如果你运行cider-jack-in
,苹果酒就不需要任何clojure端的配置。去掉任何与nrepl
相关的东西,你的project.clj中的cider
,lein profiles.clj和苹果酒应该开始开箱即用了。
此外,如果你想要melpa稳定,那么你可能也想要使用完全释放的苹果酒,而不是一些snaphot。苹果酒0.16.0是现在的melpa稳定版,它对我来说很好。
更新:我看到你实际上使用的是直接的melpa,它不是melpa稳定的(它的url是"http://stable.melpa.org/packages/"
)
发布于 2018-01-24 15:02:24
你在这里所做的错误是在你的项目文件中直接指定Cider的版本。请不要那样做。每个单独的项目可能需要它自己的Cider版本,而在Emacs中,一次只能安装一个版本。因此,在它们之间进行动态切换将是一团乱麻。
解决方法是在~/.lein/profiles.clj
文件中指定,而不是在project.clj
中指定。下面是我的:
~> cat ~/.lein/profiles.clj
{:user {:signing {:gpg-key "........."}
:plugins [[cider/cider-nrepl "0.15.1"]]}}
在我的Emacs中,我从releases Git page手动安装了0.15.1
版本。
这个文件根本不会影响你的Git历史记录。Lein工具在启动时会自动将其合并到project.clj
内容中。此外,现在您可以使用在所有项目中安装的唯一一个苹果酒。请从您的project.clj
文件中删除所有Cider包声明。
一旦你有时间,请阅读官方Lein profile manual。
https://stackoverflow.com/questions/48414690
复制相似问题