我正在努力更好地理解debhelper的dh
工具。据我了解,dh
是各种dh_*
辅助工具的前端。这些辅助工具既可以单独调用,也可以从dh
工具自动调用。通常会创建一个debian/rules
文件,它以某种方式调用dh
并可能覆盖某些dh_*
个调用。 dh
然后似乎知道它需要调用哪个dh_*
工具以及按哪个顺序。
/usr/share/doc/debhelper/examples/rules.tiny
下的示例包含以下内容作为debian/rules
文件的示例:
#!/usr/bin/make -f
%:
dh $@
此规则文件导致dh_*
执行dh
辅助工具的顺序是什么?更重要的是,dh
如何确定此序列以及记录的位置。
答案 0 :(得分:1)
将要执行的辅助工具序列取决于以下几点:
build-arch
,build-indep
,build
,clean
,install-indep
,install-arch
,install
,binary-arch
,binary-indep
和binary
。 (大多数)这些的含义在Debian Policy §4.9中进行了讨论。debian/compat
文件中找到)--with
和--without
选项)override_dh_auto_test
)正如您所看到的,对于所有可能的构建目标和配置安排(甚至仅针对最常见的构建目标和配置安排),记录运行哪些命令可能会令人困惑。因此,要知道的方法是使用--no-act
参数dh
,您的构建目录按照您希望的方式设置。
这是一个使用binary
目标在虚拟构建目录中运行的示例,我只是使用dh_make
制作,放入compat级别10.确切的命令或确切的顺序看到可能会略有不同:
~/dh-demo$ dh binary --no-act
dh_testdir
dh_update_autotools_config
dh_autoreconf
dh_auto_configure
dh_auto_build
dh_auto_test
dh_testroot
dh_prep
dh_installdirs
dh_auto_install
dh_install
dh_installdocs
dh_installchangelogs
dh_installexamples
dh_installman
dh_installcatalogs
dh_installcron
dh_installdebconf
dh_installemacsen
dh_installifupdown
dh_installinfo
dh_systemd_enable
dh_installinit
dh_systemd_start
dh_installmenu
dh_installmime
dh_installmodules
dh_installlogcheck
dh_installlogrotate
dh_installpam
dh_installppp
dh_installudev
dh_installgsettings
dh_bugfiles
dh_ucf
dh_lintian
dh_gconf
dh_icons
dh_perl
dh_usrlocal
dh_link
dh_installwm
dh_installxfonts
dh_strip_nondeterminism
dh_compress
dh_fixperms
dh_strip
dh_makeshlibs
dh_shlibdeps
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb