5

当我下载一些包源(例如 foo-[ver].orig.tar.gz、foo-[ver].dsc)时,我在使用dpkg-source -x foo-[ver].dscand时经常遇到依赖问题dpkg-buildpackage -us -uc ...。在这种情况下,我必须一一安装构建依赖项。是否有一些工具可以自动处理这种情况,例如dpkg-source-dependencies -x foo-[ver].dsc

4

4 回答 4

7

尝试构建包时,以下内容应获取所有依赖项:

apt-get build-dep [package-name]

此外,如果需要,apt-get 可以编译源包:

apt-get --build [package-name]

于 2012-01-24T13:56:30.553 回答
3

有几种方法可以解决这个问题(从其他回复中可以看出)。对于已经是存储库一部分的包,您可以简单地使用:

apt-get build-dep pkgname

对于本地包,以下之一:

apt-get build-dep source-dir/
apt-get build-dep source-name.dsc
/usr/lib/pbuilder/pbuilder-satisfydepends* --control source-name.dsc
mk-build-deps --install source-name.dsc
pbuilder build source-name.dsc
sbuild source-name.dsc

可能还有其他解决方案,但以上是最广泛使用的。

于 2016-10-25T18:47:41.810 回答
2

pbuilder只是这项工作的工具。pbuilder将在安装时在 tarball 中设置最小分发。要构建.dsc文件,您需要提供文件并pbuilder解压缩 tarball,chroots,安装所有必要的构建依赖项并编译包。作为此过程的结果,您的构建结果独立于主机的当前配置。

于 2012-01-21T17:18:49.623 回答
-1

我正在从 debian/control 中提取 Build-Depends,然后使用 apt 安装它们。一些标准包没有被提及为 Build-Depends(例如 build-essentials),并且需要在 debuild 中静默使用。

pkgs=$(grep Build-Depends debian/control|sed 's/^Build-Depends: //g)
pkgs=$(echo $pkgs|sed "s/[() ]//g"|tr "," " ")
apt-get install $pkgs build-essential
于 2013-11-14T12:40:41.123 回答