Последовательность по умолчанию для 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 ответ

Решение

Последовательность вспомогательных инструментов, которые будут выполнены, зависит от нескольких вещей:

  1. какая цель сборки передается. они включают: build-arch, build-indep, build, clean, install-indep, install-arch, install, binary-arch, binary-indep, а также binary, Значения (большей части) из них обсуждаются в Политике Debian § 4.9.
  2. уровень совместимости с Debhelper (как указано в debian/compat файл)
  3. ваша версия Debhelper (хотя предпринимаются усилия для того, чтобы разные версии работали одинаково при одинаковом уровне совместимости)
  4. какие вспомогательные команды уже выполнялись с момента последней очистки (в уровнях сжатия debhelper 9 и ниже)
  5. какие аддоны используются (--with а также --without опции)
  6. какие цели переопределения существуют в make-файле (например, override_dh_auto_test)

Как вы можете видеть, это может сбивать с толку документ, какие команды выполняются, в каком порядке, для всех возможных целей сборки и конфигураций (или даже только для самых распространенных). Таким образом, способ узнать это использовать --no-act аргумент dh, с вашим каталогом сборки, настроенным так, как вы этого хотите.

Вот пример запуска с binary цель в фиктивной директории сборки, которую я только что сделал, используя dh_make, поместите на уровень 10. Compat. Точные команды или порядок, который вы увидите, скорее всего, будут немного отличаться:

~/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
Другие вопросы по тегам