1

我已经在 emacs24 上安装了 cedet。但是,每当我启动 emacs 时,我都会收到一个错误,即 el-get 安装 cedet 失败。这需要相当长的时间并且在某个地方失败了。

为什么 el-get 下载默认情况下已经提供的 cedet,为什么会抛出错误,我该如何禁用它?

启动时:

el-get waiting for "*bzr branch cedet" to complete 
el-get is waiting for "make" to complete
error: el-get: make el-get could not build cedet [make EMACS=/usr/bin/emacs24]
4

1 回答 1

1

每当你这样做el-get-install时,el-get 首先会尝试安装包声明的依赖项。在安装包之前 el-get 将包添加到状态文件(默认情况下它在 中~/.emacs.d/el-get/.status.el)并将其标记为必需包,一旦安装包,状态将更改为installed. 在 emacs 启动时,它会检查此文件以获取它必须安装的列表包,如果任何包的状态为“必需”,则首先安装它。

在您的特定情况下,包的配方ecb声明cedet为依赖项。因此el-get尝试先安装cedet但失败了,因为 cedet随附的配方el-get尝试cedet从源代码安装。此步骤失败,因为您没有texinfo安装 make 所需的cedet。结果el-get将 cedet 标记为必需的软件包,并且在每次启动时它都试图安装它(并且失败)。

您可以这样做 M-xel-get-removeRETname-of-offending-packageRET,以便 el-get 停止尝试安装该软件包。要找出特定包安装失败的原因,您始终可以通过切换到缓冲区来检查包的构建过程的输出el-get: build(我不记得正确的名称,但它是类似的东西)。

对于您的特定情况,您可以通过使用以下配方指示从 melpael-get安装来完全避免安装 cedet 。ecbC-hvel-get-sourcesRET来阅读配方语法

(:name ecb
       :description "Emacs Code Browser"
       :type elpa
       :repo ("melpa" . "http://melpa.milkbox.net/packages/"))

ecb.rcp将上面的配方添加到您的个人配方目录中命名的文件中。我将它们存储在 中~/.emacs.d/recipes,但位置无关紧要,只需确保它在列表中的第一位,el-get-recipe-path以便您的食谱优先于内置食谱。就像是

(add-to-list 'el-get-recipe-path "/path/to/personal/recipes")

应该足以确保您的个人食谱受到el-get.

于 2014-03-16T19:39:17.257 回答