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
.
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)
Ama*_*rus 11
实际上我可以使用dpkg-checkbuilddeps
which 显示构建依赖项。这让我得到了我需要的 99%
我通常使用debuild
fromdevscripts
来构建包,如果相关,它会打印一行缺少的构建依赖。
“正确”的方法是使用pbuilder
或类似的方法以最小的方式构建包chroot
,只需安装包指定的任何额外的构建依赖,这也消除了一堆其他潜在问题(非打包库的本地安装例如)。
归档时间: |
|
查看次数: |
24471 次 |
最近记录: |