如何回退某个elpa包的版本


#1

抱歉这可能是一个比较基础的问题, 但我确实没搜到解决方案.

昨天在使用spacemacs的时候, 点击了home page上的update packages按钮更新了所有的package, 然后某个功能就不能正常工作了, 看log可以猜测是哪个包出的问题, 但是我想请问各位我要怎么操作将这个包回退几个版本试试?


#2

我也不知道

不过 觉得 git 应该有答案


#3

melpa是滚动更新,没法回退的,你只能找到那个插件的git仓库,回到你不能正常使用的那次提交之前,然后clone下来,顺便给作者报个issue


#4

再借问一下, 我实际的错误是加载一个.elc文件出了错, 但实际上git仓库里面只有.el的文件, 请问这个.elc的文件是怎么来的?


#5

elc是字节码编译器编译出来的,字节码执行效率高,所以包管理会自动帮你编译插件

怀疑字节码有问题,可以手动删除elc文件,让emacs加载原始el文件排错


#6

重新checkout对应的版本 这个问题确实不好解决 之前看视频学习的时候是用cask来管理 但是我觉得很麻烦 我的建议是 这次搞好之后 自己备份一下 以防万一 没事不要乱更新


#7

是check 还是 checkout

做事应该严谨些


#8

OK. 退了一个版本问题解决了, 看log感觉是某个包单独更新了但是spacemacs没来得及更新导致出了问题. 另外spacemacs管理包的方式我也没搞懂, 被他自动更新几次之后我是硬替换的包里的所有文件. 后面有空可能还得再研究一下.


#9

谢大佬指正!!