以用户身份安装 CEDET 1.0pre6,同时保持安装 CEDET 1.0pre4 deb 软件包

发布于 2024-08-02 15:55:29 字数 916 浏览 12 评论 0原文

我的工作计算机(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 加载。

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

My work computer (Ubuntu 8.10) has CEDET version 1.0pre4 installed, and I'm trying to install the newest version of CEDET (1.0pre6) in my local directory (the ultimate goal, upgrading ECB to the newest version).

Unfortunately, the default debian/ubuntu installation initializes the system-wide packages for CEDET and ECB before my .emacs file is called, and the 1.0pre6 files I then try to load throw errors trying to use symbols not defined in 1.0pre4. (See this mailing list thread about someone else reporting the same problem.)

I first tried manually reloading the packages CEDET provides in my .emacs, but one of them can't be reloaded twice.

I am now trying the unload-feature command. When I attempt to unload CEDET, I get the error:

 Lisp error: (error "Loaded libraries (\"/etc/emacs/site-start.d/55ecb.el\") depend on /usr/share/emacs22/site-lisp/cedet-common/cedet.elc")

But there is no ecb feature to unload. There is an ecb-autoloads feature, which appears to be provided by /etc/emacs/site-start.d/55ecb.el, but the library seems to depend on it as well.

I figure I can either somehow get Emacs to unload the system-wide ECB, or I can somehow add most of the content from the system-wide configuration into the top of my .emacs file, dropping the ECB and CEDET loading.

The latter sounds messy, ugly, and unstable. I'd much rather do the former, if I knew how. Or perhaps someone has a better solution to this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伤痕我心 2024-08-09 15:55:29

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

emacs --no-site-file

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

如果您的管理员已经转储带有 CEDET 的 Emacs加载完毕,你就不走运了,而且肯定要自己动手。

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


为了回应评论(您仍然希望加载 site-start 的其余部分),我会尝试以下操作:与

  1. 管理您系统的任何人交谈,让他们修复 site-start (库名称存储在变量 site-run- file)不加载该内容,而是将此类内容放入 default 中(在用户的 .file 之后加载。 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,请使用 Mx find-library 以及存储在 site-run-file 中的名称。

如果您的管理员是 vi 用户并且对 Emacs 一无所知(就像我以前的工作一样),您可以教育他们并希望得到最好的结果,或者赌注并开始推出您自己的。

Not knowing how your Emacs is installed, it's difficult to pin down a solution. The first thing I'd try is to disable loading of the site file

emacs --no-site-file

to see if it is loaded from there. It might also be loaded in the library default, but since it is loaded before your .emacs, and default is loaded afterwards, that probably isn't the culprit.

If your admins dumped Emacs with CEDET already loaded, you're out of luck, and will certainly have to roll your own.

That being said, downloading, building and installing Emacs is just as easy as any other bit of software. If I recall, these were the steps: gtar xfz emacs-23.1.tar.gz; cd emacs-23.1; ./configure; gmake; gmake install.


In response to the comment (that you want to still load the rest of site-start), I'd try the following:

  1. Talk to whomever administers your system to get them to fix site-start (the library name is stored in the variable site-run-file) to not load that stuff but instead to put that kind of stuff in default (which is loaded after the user's .emacs)
  2. While waiting for #1 to resolve (if it ever does), invoke Emacs like so

    emacs -q --no-site-file -l hack.el

where hack.el contains something like

;;; 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

To find the site-run-file, use M-x find-library and the name stored in site-run-file.

If your admins are vi users and know nothing about Emacs (like mine were at my former job), you can either educate them and hope for the best, or punt and start rolling your own.

网白 2024-08-09 15:55:29

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

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

因此,要解决此问题,我所要做的就是从系统中清除 ecb 软件包,如下所示:

sudo apt-get purge ecb

现在可以按照 CEDET INSTALL 文件中的说明加载本地版本的 CEDET。

I know this is a rather old question but I recently came across this issue with Ubuntu 13.10 when trying to install CEDET 1.1.

I had previously installed the ecb package, which came with /etc/emacs/site-start.d/50ecb.el and caused the version of CEDET that came packaged with Emacs23 t be loaded before processing my .emacs file.

So, all I had to do to fix this was to purge the ecb package from my system as follows:

sudo apt-get purge ecb

and now my local version of CEDET could now be loaded instead by following the instructions that came in CEDET's INSTALL file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文