给定一个debian源码包-如何安装build-deps?


47

我有一个debian(从技术上讲是ubuntu)源码包,即.dsc,.tar.gz等,我想构建它。将dpkg-buildpackage失败,因为我没有所有的编译依赖。

通常我会使用apt-get build-dep,但是此软件包不适合使用。

给定一个源包,是否有一种“干净”,“正确”的方法来安装所有构建依赖项。我知道我可以打开debian / control文件,但是我很好奇是否有一种“正确”的方法。

我已经安装了build-essential,并且具有所有正常的编译器等,该软件包需要额外的软件。

Answers:


34

使用mk-build-deps是的一部分devscripts


12

这是使用ptman建议的工作流程示例。

假设您已经下载了.dsc文件,.orig.*z文件以及可能的.debian.*z文件,然后使用以下命令解压缩源软件包:

dpkg-source -x [package_name]_[package_version].dsc

移至提取的源文件夹并运行:

sudo mk-build-deps -i

这将创建[package_name]-build-deps_[version].deb并安装文件,并安装它建议的所有依赖项。

现在,您应该能够从源代码构建软件包了:

debuild

完成后,可以通过删除build-deps生成的包来轻松删除引入的依赖项:

sudo apt-get purge --auto-remove [package_name]-build-deps

2
你也可以传递-rsudo mk-build-deps -i安装后删除软件包。另外,您可以使用,以root身份安装,而不是以root身份进行构建--root-cmd sudo。最后,使用mk-build-deps --install --root-cmd sudo --remove
Lucas

另外,您可能需要sudo apt install devscripts equivs先。
阿尔巴·门德斯

9

实际上,我可以使用dpkg-checkbuilddeps它显示构建依赖关系。那让我获得了我所需要的99%


2
奇怪的是,packagename-version.dsc文件在以字符串Build-Depends
quack quixote

6

我通常使用debuildfrom devscripts来构建软件包,如果相关,它会打印一行缺少的build-deps。

“正确”的方法是使用pbuilder或类似方法,以最小的方式构建软件包chroot,并按照软件包的指定安装任何其他build-deps,这还消除了许多其他潜在的问题(本地安装未打包的库例如)。


-6

尝试:

apt-get install build-essential

我已经安装了build-essential。该软件包需要额外的软件。
罗里

它没有解释什么要求?也许libncurses-dev也。
Lanselot

1
那不是重点;当然可以。关键是要有一个实际安装依赖项的命令,而不是只显示依赖项的命令。
Matthias Urlichs 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.