我的工作计算机(Ubuntu 8.10)安装了CEDET版本1.0pre4,我正在尝试在本地目录中安装最新版本的CEDET (1.0pre6) (最终目标是将ECB升级到最新版本)。
不幸的是,debian/ubuntu的默认安装会在我的.emacs文件被调用之前初始化CEDET和ECB的系统包,然后我试图加载的1.0pre6文件会抛出错误,试图使用1.0pre4中没有定义的符号。(有关其他人报告相同问题的信息,请参阅this mailing list thread。)
我首先尝试手动重新加载CEDET在我的.emacs中提供的包,但其中一个包无法重新加载两次。
我现在正在尝试unload-feature命令。当我尝试卸载CEDET时,我得到错误:
Lisp error: (error "Loaded libraries (\"/etc/emacs/site-start.d/55ecb.el\") depend on /usr/share/emacs22/site-lisp/cedet-common/cedet.elc")但是没有要卸载的ecb功能。有一个ecb-autoloads特性,它似乎是由/etc/emacs/site-start.d/55ecb.el提供的,但是这个库似乎也依赖于它。
我认为我可以通过某种方式让Emacs卸载系统范围内的ECB,或者以某种方式将系统范围配置中的大部分内容添加到.emacs文件的顶部,从而删除ECB和CEDET加载。
后者听起来混乱、丑陋和不稳定。如果我知道怎么做,我更愿意做前者。或者也许有人对这个问题有更好的解决方案?
发布于 2009-08-28 04:32:08
由于不知道Emacs是如何安装的,因此很难确定解决方案。我要做的第一件事是禁用site file的加载
emacs --no-site-file看看是否从那里加载的。它也可能被加载到库default中,但由于它是在.emacs之前加载的,而default是在之后加载的,所以这可能不是罪魁祸首。
如果你的管理员已经加载了CEDET的dumped Emacs,你就不走运了,你肯定得自己滚了。
也就是说,下载、构建和安装Emacs和其他任何软件一样简单。如果我没记错的话,这些步骤是:gtar xfz emacs-23.1.tar.gz; cd emacs-23.1; ./configure; gmake; gmake install。
作为对评论的回应(您仍然希望加载site-start的其余部分),我尝试执行以下操作:
与管理您的系统的人进行对话,让他们修复-
site-run-file中),不加载那些东西,而是将这种东西放到default中(它是在用户的Emacs之后加载的,等待#1解析(如果有),调用Emacs,如下所示emacs -q --no-site-file -l hack.el
其中hack.el包含如下内容
;;; some changes to load-path to put your stuff in front of the load-path`
(if site-run-file
(load site-run-file t t))
;;; now load your .emacs要查找site-run-file,请使用M-x find-library和存储在site-run-file中的名称。
如果您的管理员是vi用户,并且对Emacs一无所知(就像我以前的工作一样),那么您可以教育他们并希望有最好的结果,或者使用平底船开始自己的Emacs。
发布于 2013-07-04 06:20:01
我知道这是一个相当老的问题,但是我最近在Ubuntu 13.10中遇到了这个问题,当我试图安装CEET1.1的时候。
我之前安装了ecb包,它随/etc/emacs/site-start.d/50ecb.el一起提供,并导致在处理我的.emacs文件之前加载与Emacs23一起提供的CEDET版本。
因此,我要做的就是将ecb包从我的系统中清除,如下所示:
sudo apt-get purge ecb现在可以按照CEDET安装文件中的说明加载我的本地版本的CEDET了。
https://stackoverflow.com/questions/1342361
复制相似问题