我已经使用了Emacs将近40年了,而且几乎没有像melpa-stable中反复破碎的苹果酒包一样令人沮丧。
我的包裹清单中只有两个条目
package-archives是'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日)加载了一个苹果酒-0.17-0-SNAPSHOT。
现在,在昨天工作的每个项目(10+)中启动苹果酒和苹果酒 - jack-in产生一个“错误:未处理的REPL处理程序异常处理消息”和一个巨大的堆栈跟踪。
有趣的是,如果用旧版本替换project.clj中的nrepl依赖项,例如[[cider / cider-nrepl“0.16.0”],cider-jack-in开始但警告苹果酒和苹果酒 - nrepl版本不同,“事情会破裂”
所以,经过几个小时的工作,我已经从一个工作的苹果酒-0.17.0-SNAPSHOT系统(直到melpa-stable 1月22日更新到苹果酒-0.17.0-SNAPSHOT)再到工作苹果酒-0.16.0系统。
那么腐败发生在哪里? GitHub上的melpa-stable标签是0.16.0,但在我的包列表中只有melpa-stable(+ gnu),破坏的0.17.0-SNAPSHOT正在加载。
如果没有很多Git疼痛我真的不需要我找不到Jan-22之前的苹果酒-0.17.0-SNAPSHOT和Jan22 SNAPSHOT之间的差异。
所以唯一的选择是回到手动安装cider-0.16.0并返回相应的nrepl版本。但是在使用破碎的SNAPSHOT损坏melpa-stable之前,它与cider-0.17.0-SNAPSHOT一起工作得非常好。
破碎的狗屎不属于melpa-stable。
我们如何修复melpa-stable以保持稳定?
答案 0 :(得分:4)
现在很长一段时间,如果你运行cider-jack-in
,CIDER不需要任何clojure端配置。在项目中删除与nrepl
和cider
相关的任何内容,并且lein profiles.clj和CIDER应该开始开箱即用。
另外,如果你想要melpa-stable那么你可能也想使用CIDER的完整版本,而不是一些快照。 CIDER 0.16.0现在是melpa稳定的,它对我来说很好。
更新:我看到你实际上正在使用直接的melpa,这不是melpa-stable (其中"http://stable.melpa.org/packages/"
为url)
答案 1 :(得分:2)
你在这里做错了是你直接在你的项目文件中指定了Cider的版本。请不要这样做。每个项目都可能需要自己的Cider版本,而在Emacs中,您可能只有一个版本一次安装。因此,动态切换它们将是一团糟。
解决方案是指定不在project.clj
但在~/.lein/profiles.clj
文件中的Cider包。这是我的:
~> 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
内容。此外,现在您可以使用在所有项目中安装的唯一一个Cider。请从project.clj
文件中删除所有Cider包声明。
有空的时候,请阅读官方Lein profile manual。