debhelper的默认序列

时间:2018-02-05 06:20:29

标签: debhelper

我正在努力更好地理解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如何确定此序列以及记录的位置。

1 个答案:

答案 0 :(得分:1)

将要执行的辅助工具序列取决于以下几点:

  1. 正在传递的构建目标。其中包括:build-archbuild-indepbuildcleaninstall-indepinstall-archinstallbinary-archbinary-indepbinary。 (大多数)这些的含义在Debian Policy §4.9中进行了讨论。
  2. Debhelper compat级别(在debian/compat文件中找到)
  3. 你的Debhelper版本(虽然努力使得不同的版本在相同的compat级别下工作相同)
  4. 自上次清理以来已经运行了哪些帮助程序命令(在debhelper compat级别9及更低级别)
  5. 正在使用哪些插件(--with--without选项)
  6. makefile中存在哪些覆盖目标(例如override_dh_auto_test
  7. 正如您所看到的,对于所有可能的构建目标和配置安排(甚至仅针对最常见的构建目标和配置安排),记录运行哪些命令可能会令人困惑。因此,要知道的方法是使用--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