简体   繁体   English

el-get等待“ * bzr branch cedet”完成

[英]el-get waiting for “*bzr branch cedet” to complete

I already have cedet installed on emacs24. 我已经在emacs24上安装了cedet。 However, whenever I start emacs I get an error that el-get is installing cedet unsuccessfully. 但是,每当我启动emacs时,都会收到一个错误,提示el-get无法成功安装cedet。 It takes a rather long time and fails somewhere in the make. 这需要相当长的时间,并且在制造过程中会失败。

Why is el-get downloading cedet that already comes by default, why is it throwing an error, and how can I disable this? 为什么默认情况下会出现el-get下载ceet,为什么会引发错误,如何禁用此功能?

At startup: 在启动时:

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]

Whenever you do el-get-install , el-get first tries to install the dependencies declared by the package. 每当执行el-get-install ,el-get都会首先尝试安装软件包声明的依赖项。 Before installing the package el-get adds the package to a status file (by default it is in ~/.emacs.d/el-get/.status.el ) and marks it as a required package and once the package is installed the status is changed to installed . 在安装软件包之前,el-get将软件包添加到状态文件中(默认情况下,它位于~/.emacs.d/el-get/.status.el ),并将其标记为必需的软件包,并且在安装软件包后,状态更改为installed On emacs startup it checks this file to get a list packages that it has to install and if any package has a status of "required" it is installed first. 在emacs启动时,它将检查该文件以获取必须安装的列表软件包,如果任何软件包的状态为“必需”,则将其首先安装。

In your particular case, the recipe for the package ecb declares cedet as a dependency. 在您的特定情况下,软件包ecb的配方将cedet声明为依赖项。 So el-get tried to install cedet first and failed, since the cedet recipe that ships with el-get tries to install cedet from source. 因此el-get尝试首先安装cedet并失败,因为el-get随附的cedet配方尝试从源代码安装cedet This step was failing since you did not have texinfo installed which was needed to make cedet . 此步骤失败了,因为您没有安装cedet所需的texinfo As a result el-get had cedet marked as required package and on every startup it was trying to install the it (and failing). 结果, el-get将ceet标记为必需的软件包,并且在每次启动时都尝试安装它(并且失败)。

You can do Mx el-get-remove RET name-of-offending-package RET , so that el-get stops trying to install that package. 您可以执行mx el-get-remove RET name-of-offending-package RET ,以便el-get停止尝试安装该软件包。 To find out why a particular package install is failing you can always check the output of build process of package by switching to the buffer el-get: build (I don't remember the name correctly but it is something similar). 要找出为什么某个特定的软件包安装失败的原因,您可以始终通过切换到缓冲区el-get: build来检查软件包的构建过程的输出(我不记得这个名字的正确性,但这是相似的)。

For your particular case you could avoided installing cedet altogether by instructing el-get to install ecb from melpa using the following recipe. 对于您的特殊情况,可以通过使用以下方法指示el-get从melpa安装ecb ,从而避免完全安装ceet。 Do Ch v el-get-sources RET to read about recipe syntax 通过Ch v el-get-sources RET阅读有关配方语法的信息

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

Add the recipe above to file named ecb.rcp in your personal recipe directory. 将以上食谱添加到个人食谱目录中名为ecb.rcp文件中。 I store them in ~/.emacs.d/recipes , the location doesn't matter though, just ensure that it is in first in the list el-get-recipe-path so that your recipes get precedence over the builtin ones. 我将它们存储在~/.emacs.d/recipes ,但是位置并不重要,只需确保它位于列表el-get-recipe-path中的第一位即可,以便您的食谱优先于内置食谱。 Something like 就像是

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

should be sufficient to ensure that your personal recipes are preferred by el-get . 应该足以确保el-get偏爱您的个人食谱。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM