每当你这样做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-remove
RETname-of-offending-package
RET,以便 el-get 停止尝试安装该软件包。要找出特定包安装失败的原因,您始终可以通过切换到缓冲区来检查包的构建过程的输出el-get: build
(我不记得正确的名称,但它是类似的东西)。
对于您的特定情况,您可以通过使用以下配方指示从 melpael-get
安装来完全避免安装 cedet 。ecb
做C-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
.