![cowbuilder --create --distribution lucid 失败](https://linux22.com/image/1111208/cowbuilder%20--create%20--distribution%20lucid%20%E5%A4%B1%E8%B4%A5.png)
我正在尝试为 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
答案1
尝试将以下内容添加到您的~/.pbuilderrc
:
COMPONENTS="main universe multiverse restricted"
或者按照 SunSparc 的建议,输入以下命令:
COMPONENTS="main universe multiverse restricted" cowbuilder --create --distribution lucid
cowbuilder
在 lucid 的 universe 组件中。我没有在问题中包含的输出中看到尝试访问 universe 的创建操作。
该文件~/.pbuilderrc
可以设置许多pbuilder
可用的选项cowbuilder
。
答案2
严重的错误消息(如下)让我有点困惑,直到我弄清楚了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
——并且通过扩展,pbuilder
——正在尝试创建一个干净、最小的 chroot 环境,其中没有安装任何额外的软件包。即使cowbuilder
已经安装了外部chroot,它似乎想要安装里面chroot 也是如此。chroot 内部和外部是完全不同的世界。在 chroot(常规环境)外部,文件/etc/apt/sources.list
为王。但在内部,规则则不同。默认pbuilder
环境仅包含基本/全新安装所需的最关键和最少的存储库。
可接受的答案谈到了添加“COMPONENTS”参数并指定一些额外的存储库。它对我不起作用。我尝试将 COMPONENTS 值添加到文件(/etc/pbuilderrc
我的本地.pbuilderrc
文件)中,并在命令行上将其作为环境变量执行。没有运气。我确实找到了一些参考资料,其中提到了 COMPONENTS 参数不受支持cowbuilder
。
最后,我偶然发现一篇博客文章讨论了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"
[请注意,您可以saucy
根据需要更新/更改(例如trusty
,,,甚至和raring
,只要您有适当的 Debian 镜像等)。precise
wheezy
sid
然后,我只需从命令行运行以下命令,一切都成功创建,我就可以继续:
sudo cowbuilder --create # defaults to using current distribution
显然,您可以使用“--distribution”命令行参数更改发行版。建立初始环境需要几分钟时间,但一旦创建,您就可以使用 轻松更新软件包等cowbuilder
。
这Debian 网站上的 cowbuilder 页面讨论了创建特定于 Ubuntu 的 cowbuilder。它提到cowdancer
已将其移至universe
存储库。他们引用了运行以下命令在 Ubuntu 上构建 cowbuilder 环境:
DIST=trusty sudo cowbuilder --create --distribution trusty --components "main universe"
该--components="main universe"
标志是确保创建过程可以访问所有必要的存储库的关键部分。