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

Ama*_*rus 51 package-management ubuntu debian dpkg apt

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

通常我会使用apt-get build-dep,但这个包不在 apt 中。

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

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

ptm*_*man 39

使用mk-build-deps属于devscripts.

  • 对于那些希望为普通依赖项创建源包的人,请使用“equivs-build”。这将是 `mk-build-deps` 的“另一半”。 (3认同)

joe*_*dle 17

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

假设您已经下载了.dsc文件、.orig.*z文件,也许还有一个.debian.*z文件,然后使用以下命令解压源包:

dpkg-source -x [package_name]_[package_version].dsc
Run Code Online (Sandbox Code Playgroud)

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

sudo mk-build-deps -i
Run Code Online (Sandbox Code Playgroud)

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

现在你应该能够从源代码构建你的包:

debuild
Run Code Online (Sandbox Code Playgroud)

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

sudo apt-get purge --auto-remove [package_name]-build-deps
Run Code Online (Sandbox Code Playgroud)

  • 您还可以将 `-r` 传递给 `sudo mk-build-deps -i` 以在安装后删除该软件包。此外,您可以使用 `--root-cmd sudo` 以 root 身份安装,而不是以 root 身份构建。最后,使用`mk-build-deps --install --root-cmd sudo --remove` (4认同)

Ama*_*rus 11

实际上我可以使用dpkg-checkbuilddepswhich 显示构建依赖项。这让我得到了我需要的 99%

  • 奇怪的是,*packagename-version.dsc* 文件在以字符串 **Build-Depends** 开头的行中包含构建依赖项 (4认同)

Lap*_*006 6

我通常使用debuildfromdevscripts来构建包,如果相关,它会打印一行缺少的构建依赖。

“正确”的方法是使用pbuilder或类似的方法以最小的方式构建包chroot,只需安装包指定的任何额外的构建依赖,这也消除了一堆其他潜在问题(非打包库的本地安装例如)。