曾经将 emacs 从 24.5 升级到 25,然后发现 org 导出 html 出错,然后把 elpa 目录给删了,重新启动 emacs 将所有 package 重新下载安装了一遍后问题解决,所以我的问题就是,其实这些 package 还是原来那些 package,有什么方法可以不必重新下载,只要重新安装即可以了?
恩,制作本地仓库是一个办法,我也尝试过陈斌的这个方法,确实不错。 不过我想,这个办法还是稍显麻烦了点,我理想的解决思路是如果能在更换 emacs 版本后,把 elpa 目录下的 *.elc 文件全部删除,再找个办法让 emacs 重新编译生成新的 elc 文件就更完美了。所以问题是如下几点:
- 是否重新为 package 编译生成新的 *.elc 文件就可以了,有没有其它要处理的东西?
- 如何重新编译 package?
可以用 byte-recompile-directory
函数,只要指定 elpa 文件夹即可。
恩,这函数不错。
也就是说你并没有找出问题的原因。一般新版本的 Emacs 能运行相对较老版本的 Emacs 的 byte code。
In general, any version of Emacs can run byte-compiled code produced by recent earlier versions of Emacs, but the reverse is not true.
没什么好办法,或许重新下载压根一点就不麻烦:刚刚我把我的 elpa
目录删掉,重启重新安装一遍, 安装 150 个包一共花了 4 分钟。所以要是我是你的话,压根就不会花太多时间去想怎么节省 4 分钟。
1 个赞
我的意思是下载 package 这是一个不必要的步骤,而不是说这个步骤耗时,所以你这是答非所问。。。。。
源码就是包,你都删掉了。。不下载还安装啥
拜托,我问的就是如何不删除 package,只重新安装。