che*_*wei 4 linux debian package deb debhelper
我在构建 debian 包时遇到了一个问题。
关于规则文件的文档:https : //www.debian.org/doc/manuals/maint-guide/dreq.en.html#rules
debian/rules build 运行 dh build;它依次运行以下内容:
dh_testdir
dh_auto_configure
dh_auto_build
dh_auto_test
Run Code Online (Sandbox Code Playgroud)fakeroot debian/rules 二进制文件运行 fakeroot dh 二进制文件;它依次运行以下内容:
dh_testroot
dh_prep
dh_installdirs
dh_auto_install
dh_install
dh_installdocs
...
dh_builddeb
Run Code Online (Sandbox Code Playgroud)但是当我运行dh binary --no-act命令时,输出包括dh build --no-act. 这意味着./configure和make命令在构建 debian 包期间运行两次。有点奇怪。
我曾经dpkg-buildpackage -us -uc构建过 debian 包。
更新:我看到它实际上没有运行两次,但为什么 --no-act 显示dh build输出运行两次?
首先,要回答第一个问题,Debian 政策 §4.9中概述了debian/rules build和binary规则之间的区别。简而言之,build目标应该只执行“构建”步骤,而不要做任何需要 root(或 fakeroot)权限的事情,例如将文件 chowning 为 uid 0 或“安装”。binary,另一方面,应该采取所有必要的步骤来构建适当的二进制 debs。如果尚未完成,binary则应包括所有步骤build。
以下是dh您可能会遗漏的一些事实:
dh跟踪dh_*作为构建序列的一部分(例如,作为dh build或 的一部分dh binary)运行的命令,即使在调用之间也是如此。您可以通过查看debian/$package.debhelper.log. 如果其中列出了命令,dh则出于命令排序的目的,将认为它已经运行。
dh $sequence --no-actdebian/$package.debhelper.log也会考虑该文件。因此,当您dh binary --no-act在新的、干净的构建目录上运行时,您会看到一长串命令,包括需要为build目标执行的命令。但是如果你真的先运行 然后尝试,它就不会再显示构建步骤了。它只会显示准备和创建实际 .deb 包的步骤。dh builddh binary --no-act
| 归档时间: |
|
| 查看次数: |
2387 次 |
| 最近记录: |