有多种方法可以在干净且可重现的环境中构建 Debian 软件包。最常用的两个是 pbuilder 和 sbuild。就个人而言,我一直使用 pbuilder。我发现 pbuilder 更易于使用和维护。我一直无法找到两者的任何并排比较。我错过了什么?
使用 sbuild 比使用 pbuilder 有什么优势?
我经常需要创建另一个包所依赖的包(即构建依赖项)。不是首先在我的 ppa 中构建所有这些包(有时可能需要一些时间),我想使用 pbuilder 的结果目录作为 pbuilder 本身的源。
我怎样才能做到这一点?我可以通过钩子做到这一点吗?
我正在为 Ubuntu 开发设置我的机器。我正在关注Ubuntu Development Beginnings,但是在运行sudo pbuilder create命令时出现以下错误:
$ sudo pbuilder create
I: Distribution is devel.
I: Current time: Thu Jul 9 22:23:59 IST 2020
I: pbuilder-time-stamp: 1594313639
I: Building the build environment
I: running debootstrap
/usr/sbin/debootstrap
E: No such script: /usr/share/debootstrap/scripts/devel
E: debootstrap failed
E: debootstrap.log not present
W: Aborting with an error
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题并设置 pbuilder 以在 Ubuntu 20.04 中创建一个干净的 chroot 环境吗?
我的LAN 网络上有一个apt-cacher-ng服务器,我想知道如何“强制”pbuilder使用它(以加速包构建)。
缓存的典型设置客户端如下所示:
在/etc/apt/apt.conf:
Acquire::http { Proxy "http://servername:3142"; };
我意识到设置pbuilder需要 root 权限,但是每次调用真的需要 root 权限吗?
有没有办法pbuilder以标准用户身份运行?
我下面这个在Ubuntu上如何修复一个bug教程,但是当我尝试生成源代码包我遇到的一个问题。在标题为“测试修复”的部分中,读者被告知执行两个命令来完成构建:
$ bzr builddeb -- -S -us -uc
$ pbuilder-dist <release> build ../<package>_<version>.dsc
Run Code Online (Sandbox Code Playgroud)
第一个工作正常,我得到了一个很好的包集合,包括构建所需的 .dsc 文件。但是,当我在第二个中填写占位符并执行它时,它看起来像这样:
pbuilder-dist precise build ../gedit_3.1.1-0ubuntu4.dsc
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
W: /home/notgary/.pbuilderrc does not exist
E: File /home/notgary/pbuilder/precise-base.tgz does not exist
Run Code Online (Sandbox Code Playgroud)
我在 wiki 上关注了PbuilderHowTo并创建了(我认为)一个 Precise tarball 使用
sudo pbuilder create --distribution precise
Run Code Online (Sandbox Code Playgroud)
但我~/pbuilder目录的唯一内容是precise_result
设置构建环境时我做错了什么,我需要做些什么来修复它以便我可以使用 pbuilder 构建 Precise 包?
我正在尝试为 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 …Run Code Online (Sandbox Code Playgroud) 在构建 Debian 软件包时,pbuilder(和类似工具)有助于在隔离环境中构建软件包,因此我系统中的奇怪设置不会导致构建问题:
pbuilder 旨在成为一个易于设置的系统,用于在洁净室环境中自动构建 Debian 软件包,以便可以验证一个软件包是否可以在大多数 Debian 安装上构建。洁净室环境是通过使用基本 chroot 映像实现的,因此 chroot 中只会安装最少的软件包。
有 snapcraft 的等价物吗?
上下文:我只是在为 Cassandra构建快照时遇到了一些语言环境问题。我一直遇到语言环境错误,我懒得去查看,并且在构建过程中,javadoc由于某些文件中的 Unicode 字符而失败。使用C.UTF-8作为语言环境修复了:
export LC_ALL=C.UTF-8
snapcraft
Run Code Online (Sandbox Code Playgroud)
但是,我的语言环境不应该影响构建软件包、snappy 或 Debian。像 pbuilder 这样的东西在这里会很有用。
我正在打包工作中的软件,范围已经扩大到具有基于 Lucid 和基于 Karmic 的版本。现在我只是使用git-buildpackagecall在 Karmic VM 内部构建debuild,但我已经研究了 pbuilder,所以我可以使用 chroots 更轻松地完成它,因为拥有一个用于 Karmic 的 VM 和另一个用于 Lucid 的 VM 似乎有点不合适。我四处寻找文档,但到目前为止对我来说一直很神秘。这些包已经设置了 git repos,主要是使用 pbuilder 让我卡住了。
我怎样才能轻松地设置这个设置,最好是我可以在这里为其他开发人员编写脚本?
在将软件包发布到 Debian(然后将它们同步到 Ubuntu)之前,我需要在 sid chroot 中测试它们,但在干净的 14.04 系统上出现此错误:
$ sudo DIST=sid ARCH=i386 pbuilder create
[sudo] password for u:
I: Distribution is unstable.
I: Current time: Mon Mar 17 09:37:53 EDT 2014
I: pbuilder-time-stamp: 1395063473
I: Building the build environment
I: running debootstrap
/usr/sbin/debootstrap
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
E: Release signed by unknown key (key id 8B48AD6246925553)
E: debootstrap failed
W: Aborting with an error
I: cleaning the build env
I: removing directory /var/cache/pbuilder/build//8688 and …Run Code Online (Sandbox Code Playgroud) 我正在pbuilder-dist为 Debian 不稳定版和 Ubuntu Precise 构建我的软件包。我想知道如何lintian在某个 chroot 中运行(以及可能的其他命令)。
我的机器上有 Ubuntu 12.04。
pbuilder ×11
packaging ×6
debian ×2
10.04 ×1
14.04 ×1
20.04 ×1
development ×1
privileges ×1
root ×1
snap ×1