我有一个 debian(严格来说是 ubuntu)源包,即 .dsc、.tar.gz 等,我想构建它。但是dpkg-buildpackage
失败了,因为我没有所有构建依赖项。
通常我会使用apt-get build-dep
,但这个包不在 apt 中。
给定源包,是否有“干净”、“正确”的方法来安装所有构建依赖项。我知道我可以打开 debian/control 文件,但我很好奇是否有“正确”的方法。
我已经安装了build-essential
,并且拥有所有常规的编译器等等,这个包需要额外的软件。
答案1
使用mk-build-deps
的一部分devscripts
。
答案2
这是使用 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
答案3
实际上我可以使用dpkg-checkbuilddeps
显示构建依赖项的命令。这可以满足我 99% 的需求
答案4
dpkg-checkbuilddeps 令人讨厌的地方在于它还会打印安装的版本限制和替代方案,因此其输出不能直接转发到 apt-get/apt/debfoster/.. 。
我想再次指向“apt-get build-dep”,但建议添加当前目录,即包含 debian 子目录的源包的根目录,作为包“名称”,因此调用是:
sudo apt-get build-dep .