2009-08-27 61 views
1

我的工作计算机(Ubuntu 8.10)安装了CEDET 1.0pre4版本,并且我试图在本地安装最新版本的CEDET(1.0pre6)目录(最终目标,将ECB升级到最新版本)。安装CEDET 1.0pre6作为用户,同时保持安装CEDET 1.0pre4 deb包

不幸的是,在我的.emacs文件被调用之前,默认的debian/ubuntu安装会初始化CEDET和ECB的系统范围的软件包,然后1.0pre6文件尝试加载抛出错误,尝试使用未在1.0中定义的符号PRE4。 (有关其他人报告相同问题,请参阅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 loading 。

后者听起来杂乱,丑陋和不稳定。如果我知道如何,我宁愿做前者。或者,也许有人有更好的解决这个问题?

+0

这可能很明显,你已经试过了,但是你不能让你的管理员卸载你的系统上的CEDET软件包吗? – 2010-01-19 16:18:26

+0

是的,这很明显,但我想应该有办法解决它。但是我们已经升级了电脑,系统管理员忘记重新安装cedet了,所以我没有提醒他。 (无论如何,我是唯一使用它的人)。 – AFoglia 2010-01-20 17:59:20

回答

2

不知道如何安装Emacs,很难确定解决方案。我想尝试的第一件事是禁用的site file

emacs --no-site-file 

装载,看它是否是从那里加载。它可能也会加载到库default中,但由于它在之前加载了之后加载了.emacs,而default之后加载了,这可能不是罪魁祸首。

如果您的管理员dumped已经加载了CEDET的Emacs,您运气不好,并且肯定会推出自己的。

这就是说,下载,构建和安装Emacs与任何其他软件一样简单。如果我记得,这些步骤是:gtar xfz emacs-23.1.tar.gz; cd emacs-23.1; ./configure; gmake; gmake install


在回应评论(要还是加载的site-start休息),我会尝试以下方法:

  1. 谈话给谁就给谁负责管理你的系统,让他们修复网站-start(库名被保存在变量site-run-file)不加载的东西,而是把在default那种东西(这是加载后用户的.emacs
  2. 在等待#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一无所知(就像我以前的工作一样),你可以教育他们并希望获得最好的,或踢球并开始自己动手。

+0

在发布之前,我已经尝试过。这会停止加载系统范围的ECB和CEDET包,但它也会禁止加载所有其他系统范围的emacs包,这意味着我需要手动添加它们以及未来添加的任何其他包,以便我的.emacs文件。我希望找到一种方法来在加载任何包之前覆盖emacs加载路径。 看看选项,理论上我应该能够使用--no-site-file,定义我的加载路径,然后调用site-start.el。但在Ubuntu/Debian中,该文件是空的,所以我不知道它在哪里或如何被调用。 – AFoglia 2009-09-08 14:56:42

1

我知道这是一个相当古老的问题,但我最近在尝试安装CEDET 1.1时遇到了Ubuntu 13.10的这个问题。

我之前安装了ecb软件包,它随/etc/emacs/site-start.d/50ecb.el一起提供,并导致在处理我的.emacs文件之前加载与Emacs23打包在一起的CEDET版本。

所以,我不得不这样做,以解决这个问题是从我的系统中清除,欧洲央行包如下:

sudo apt-get purge ecb 

现在我CEDET的本地版本现在可以改为按照指示加载的来到CEDET的INSTALL文件。