cowbuilder –create –distribution lucid失败

我正在尝试为Lucid创建一个构建环境,并且调用cowbuilder --create --distribution lucid失败并显示以下消息:

 Get:1 http://us-east-1.ec2.archive.ubuntu.com lucid Release.gpg [189B] Hit http://us-east-1.ec2.archive.ubuntu.com lucid Release Hit http://us-east-1.ec2.archive.ubuntu.com lucid/main Packages Fetched 189B in 0s (2376B/s) Reading package lists... I: Obtaining the cached apt archive contents Reading package lists... Building dependency tree... 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Reading package lists... Building dependency tree... apt is already the newest version. Package cowdancer is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package cowdancer has no installation candidate I: unmounting dev/pts filesystem I: unmounting proc filesystem pbuilder create failed forking: rm -rf /opt/cowbuilder 

尝试将以下内容添加到~/.pbuilderrc

 COMPONENTS="main universe multiverse restricted" 

或者,如SunSparc所建议,输入命令如下:

 COMPONENTS="main universe multiverse restricted" cowbuilder --create --distribution lucid 

cowbuilder是宇宙中清醒的组成部分。 我没有看到创建操作尝试访问您在问题中包含的输出中的Universe。

文件~/.pbuilderrc可以设置为设置许多用于cowbuilder pbuilder选项。

关键错误消息(下面)让我感到困惑,直到我完全了解了什么是cowbuilder (以及底层的pbuilder工具)正在尝试做什么。

 Package cowdancer is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source 

这是一个令人困惑的消息,因为它只在执行cowbuilder --create时出现 – cowbuilder --create 。 换句话说,当我调用此命令时,它会抱怨错过了我已安装的软件包。 奇怪的。

这是缺少的链接: cowbuilder – 并且通过扩展, pbuilder – 试图创建一个干净,最小的chroot环境,其中没有安装额外的包。 尽管cowbuilder已经安装 chroot 之外 ,但它似乎也希望安装 chroot 内部 。 chroot内外是完全不同的世界。 在chroot(常规环境)之外,你的/etc/apt/sources.list文件是王道。 但在内部,这是一套不同的规则。 默认的pbuilder环境仅包括基本/干净安装所需的最关键和最小的存储库。

接受的答案谈到添加“COMPONENTS”参数并指定一些额外的存储库。 它对我不起作用。 我尝试将COMPONENTS值添加到/etc/pbuilderrc文件,我的本地.pbuilderrc文件,并在命令行上将其作为环境变量。 没运气。 我确实找到了一些引用,提到了如何不为cowbuilder支持COMPONENTS参数。

最后,我偶然发现了一篇博文 ,其中谈到了将一个名为OTHERMIRROR的变量添加到/etc/pbuilderrc文件中。 对我来说,我只是添加了以下内容:

 OTHERMIRROR="deb http://archive.ubuntu.com/ubuntu saucy main restricted universe multiverse | deb http://archive.ubuntu.com/ubuntu saucy-backports main restricted universe multiverse | deb http://archive.ubuntu.com/ubuntu saucy-security main restricted universe multiverse | deb http://archive.ubuntu.com/ubuntu saucy-updates main restricted universe multiverse" 

[请注意,你可以更新/改变你想要的任何东西(例如,如果你有适当的debian镜子, trustyraringprecise ,甚至wheezysid )。

然后,我只是从命令行运行以下命令,一切都已成功创建,我能够继续:

 sudo cowbuilder --create # defaults to using current distribution 

显然,您可以使用“–distribution”命令行参数更改分布。 建立初始环境需要几分钟,但一旦创建,您可以使用cowbuilder轻松更新软件包等。

Debian网站上的cowbuilder页面讨论了如何创建一个特定于Ubuntu的牛仔。 它提到cowdancer已被移动到universe存储库。 他们引用运行以下命令来在Ubuntu上构建一个cowbuilder环境:

DIST=trusty sudo cowbuilder --create --distribution trusty --components "main universe"

--components="main universe"标志是确保创建过程可以访问所有必需存储库的关键部分。