1

我的工作计算机(Ubuntu 8.10)安装了 CEDET 版本 1.0pre4,我正在尝试在我的本地目录中安装最新版本的 CEDET(1.0pre6)(最终目标是将 ECB 升级到最新版本)。

不幸的是,默认的 debian/ubuntu 安装在调用我的 .emacs 文件之前初始化了 CEDET 和 ECB 的系统范围的包,然后我尝试加载 1.0pre6 文件尝试使用未在 1.0pre4 中定义的符号时抛出错误。(有关其他人报告相同问题的信息,请参阅此邮件列表线程。)

我首先尝试手动重新加载 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 加载。

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

4

2 回答 2

2

不知道您的 Emacs 是如何安装的,很难确定解决方案。我要尝试的第一件事是禁用站点文件的加载

emacs --no-site-file

看看它是否从那里加载。它也可能被加载到 librarydefault中,但由于它是在你的 .emacs之前default加载的,并且是在之后加载的,所以这可能不是罪魁祸首。

如果您的管理员在已加载CEDET的情况下丢弃了 Emacs,那么您就不走运了,而且肯定不得不自己动手。

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


作为对评论的回应(您仍想加载其余部分site-start),我将尝试以下操作:

  1. 与管理您的系统的任何人交谈以让他们修复站点启动(库名称存储在变量中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 一无所知(就像我以前的工作一样),您可以教育他们并希望获得最好的结果,或者开始自己动手。

于 2009-08-28T04:32:08.287 回答
1

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

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

所以,我所要做的就是从我的系统中清除 ecb 包,如下所示:

sudo apt-get purge ecb

现在可以按照 CEDET 安装文件中的说明来加载我的本地版本的 CEDET。

于 2013-07-03T22:20:00.953 回答