Manpages

名 前

dh - debhelper コ マ ン ド シ ー ケ ン サ ー

書 式

dh sequence [--with addon[,addon ...]] [--list] [debhelper オ プ シ ョ ン ]

説 明

dh は 一 連 の debhelper コ マ ン ド を 実 行 し ま す 。 debian/rules フ ァ イ ル に 記 載 さ れ た タ ー ゲ ッ ト に 対 応 す る sequenceを サ ポ ー ト し ま す 。 サ ポ ー ト す る タ ー ゲ ッ ト : build-arch, build-indep, build, clean, install-indep, install-arch, install, binary-arch, binary-indep, binary で す 。

override タ ー ゲ ッ ト

dh が 利 用 す る debian/rules に て 、 override タ ー ゲ ッ ト を 指 定 す る こ と で 、 呼 び 出 さ れ る 一 連 の 処 理 途 中 で 動 作 を 変 更 で き ま す 。 タ ー ゲ ッ ト dh_command を 変 更 す る た め に は 、 override_dh_command と い う タ ー ゲ ッ ト を rule フ ァ イ ル に 記 載 し ま す 。 こ ち ら が 指 定 さ れ て い る と 、 dh_command が 動 作 す る 代 わ り に override_dh_command タ ー ゲ ッ ト を 呼 び 出 し ま す 。 override タ ー ゲ ッ ト で は 、 コ マ ン ド に オ プ シ ョ ン を 追 加 し た り 、 コ マ ン ド 全 て を 置 き 換 え た り で き ま す 。 後 に 例 を 挙 げ ま す 。 ア ー キ テ ク チ ャ 依 存 パ ッ ケ ー ジ を 作 る と き の み 、 あ る い は ア ー キ テ ク チ ャ 非 依 存 パ ッ ケ ー ジ を 作 る と き の み 動 作 す る よ う に override タ ー ゲ ッ ト を 定 義 す る こ と も で き ま す 。 そ の 場 合 、 override_dh_command-arch や 、 override_dh_command-indep を 使 っ て く だ さ い (な お 、 こ の 機 能 を 使 う に は 、 Build-Depends 行 で debhelper バ ー ジ ョ ン 8.9.7 以 上 を 指 定 す る 必 要 が あ り ま す )。

オ プ シ ョ ン

--with addon[,addon ...] 一 連 の コ マ ン ド 中 の 適 切 な 位 置 で 実 行 す る ア ド オ ン を 、 debhelper コ マ ン ド へ 指 定 し ま す 。 こ の オ プ シ ョ ン は 繰 り 返 し 指 定 す る こ と も で き ま す し 、 複 数 の ア ド オ ン を カ ン マ 区 切 り で 列 挙 し て 指 定 で き ま す 。 こ の オ プ シ ョ ン は debhelper コ マ ン ド を 提 供 す る サ ー ド パ ー テ ィ 製 パ ッ ケ ー ジ と 共 に 利 用 す る 時 に 使 い ま す 。 PROGRAMMING フ ァ イ ル に 、 一 連 の ア ド オ ン 用 イ ン タ ー フ ェ ー ス に つ い て の ド キ ュ メ ン ト が あ り ま す 。

A Build-Depends relation on the package dh-sequence-addon implies a --with addon. This avoids the need for an explicit --with in debian/rules that only duplicates what is already declared via the build dependencies in debian/control. The relation can (since 12.5) be made optional via e.g. build-profiles. This enables you to easily disable an addon that is only useful with certain profiles (e.g. to facilitate bootstrapping).

Since debhelper 12.5, addons can also be activated in indep-only mode (via Build-Depends-Indep) or arch-only mode (via Build-Depends-Arch). Such addons are only active in the particular sequence (e.g. binary-indep) which simplifies dependency management for cross-builds.

Please note that addons activated via Build-Depends-Indep or Build-Depends-Arch are subject to additional limitations to ensure the result is deterministic even when the addon is unavailable (e.g. during clean). This implies that some addons are incompatible with these restrictions and can only be used via Build-Depends (or manually via debian/rules). Currently, such addons can only add commands to sequences.

--without addon

--with と は 逆 に 、 指 定 さ れ た ア ド オ ン を 無 効 に し ま す 。 こ の オ プ シ ョ ン は 繰 り 返 し 指 定 す る こ と も で き ま す し 、 ア ド オ ン 名 を カ ン マ 区 切 り で 指 定 も で き ま す 。

--list, -l 利 用 可 能 な ア ド オ ン 一 覧 を 表 示 す る 。

When called only with this option, dh can be called from any directory (i.e. it does not need access to files from a source package).

--no-act 指 定 さ れ た 一 連 の 処 理 で の コ マ ン ド を 表 示 し ま す が 、 表 示 だ け し て 実 際 に は コ マ ン ド は 実 行 し ま せ ん 。 通 常 、 dh は 何 も 実 行 し な い で あ ろ う と わ か っ て い る 動 作 コ マ ン ド を ス キ ッ プ す る こ と に 注 意 し て く だ さ い 。 --no-act を 指 定 す る と 、 一 連 の 動 作 内 で の コ マ ン ド 一 覧 を す べ て 出 力 し ま す 。

dh に 渡 さ れ た 他 の オ プ シ ョ ン は 、 実 行 さ れ る 各 コ マ ン ド に も 渡 さ れ ま す 。 こ れ は 、 -v, -X, -N の よ う な オ プ シ ョ ン を セ ッ ト す る の に 利 用 で き ま す 。 ま た 、 他 の 特 別 な オ プ シ ョ ン に つ い て も 同 様 と な り ま す 。

使 用 例

コ マ ン ド を 実 際 に は 動 作 さ せ ず 、 一 連 の 動 作 で ど の コ マ ン ド が 実 行 さ れ る か を 見 る :

dh binary-arch --no-act 以 下 は 非 常 に シ ン プ ル な rules フ ァ イ ル で す 。 こ こ で は パ ッ ケ ー ジ に 対 し て 追 加 オ プ シ ョ ン 無 し で デ フ ォ ル ト の コ マ ン ド 群 が 呼 び 出 さ れ ま す 。

        #!/usr/bin/make -f
        %:
                dh $@特 定 の

debhelper コ マ ン ド へ オ プ シ ョ ン を 渡 し た い 事 が よ く あ り ま す 。 こ れ を 簡 単 に 行 う 方 法 は 、 そ の コ マ ン ド へ override を 追 加 す る こ と で す 。

        #!/usr/bin/make -f
        %:
                dh $@
        override_dh_strip:
                dh_strip -Xfoo
        override_dh_auto_configure:
                dh_auto_configure -- --with-foo --disable-bar

dh_auto_configure(1)dh_auto_build(1) が 処 理 を す る 際 、 何 を 処 理 す れ ば よ い か 判 断 で き な い よ う な 変 わ っ た パ ッ ケ ー ジ が た ま に 存 在 し ま す 。 こ こ で は 、 dh_auto_configure(1)dh_auto_build(1) を 実 行 せ ず に 、 代 わ り の コ マ ン ド を 実 行 さ せ る 方 法 を 示 し ま す 。

        #!/usr/bin/make -f
        %:
                dh $@
        override_dh_auto_configure:
                ./mondoconfig
        override_dh_auto_build:
                make universe-explode-in-delight別 の よ く あ る 例 と し て 、 特 定 の

debhelper コ マ ン ド が 実 行 さ れ る 前 後 で 手 動 で 何 か を し た い 場 合 が あ り ま す 。

        #!/usr/bin/make -f
        %:
                dh $@
        override_dh_fixperms:
                dh_fixperms
                chmod 4755 debian/foo/usr/bin/foo

Python tools are not run by dh by default, due to the continual change in that area. Here is how to use dh_python2.

        #!/usr/bin/make -f
        %:
                dh $@ --with python2こ ち ら は

Perl に よ る Module::Build ビ ル ド シ ス テ ム を 強 制 的 に 使 う 方 法 で す 。 こ れ は 、 debhelper が 誤 っ て パ ッ ケ ー ジ が MakeMaker を 使 っ て い る と 認 識 す る 場 合 に 必 要 と な り ま す 。

        #!/usr/bin/make -f
        %:
                dh $@ --buildsystem=perl_build以 下 に

dh_auto_* コ マ ン ド が ど こ に パ ッ ケ ー ジ ソ ー ス が あ る か を 変 更 す る 例 を 載 せ ま す 。 こ れ は サ ブ デ ィ レ ク ト リ に ソ ー ス が 存 在 す る よ う な パ ッ ケ ー ジ で 使 い ま す 。

        #!/usr/bin/make -f
        %:
                dh $@ --sourcedirectory=src

dh_auto_* に サ ブ デ ィ レ ク ト リ で ビ ル ド す る よ う に 指 定 す る 方 法 を 以 下 に 示 し ま す 。 こ ち ら を 指 定 す る と 、 clean 処 理 で こ れ ら デ ィ レ ク ト リ が 取 り 除 か れ る よ う に な り ま す :

        #!/usr/bin/make -f
        %:
                dh $@ --builddirectory=buildパ ッ ケ ー ジ が 並 列 ビ ル ド 可 能 で あ れ ば 、 互 換 性 レ ベ ル

10 を 使 う か dh に --parallel を 指 定 し て 下 さ い 。 す る と dpkg-buildpackage -j が 有 効 に な り ま す 。

        #!/usr/bin/make -f
        %:
                dh $@ --parallelパ ッ ケ ー ジ が 複 数 ス レ ッ ド を 使 う と 安 定 し て ビ ル ド 出 来 な い 場 合 は 、

dh (あ る い は 関 連 す る dh_auto_* コ マ ン ド )に --no-parallel を 指 定 し て 下 さ い 。

        #!/usr/bin/make -f
        %:
                dh $@ --no-parallelこ こ で は 、

dh に 、 実 行 し て ほ し く な い コ マ ン ド を 実 行 さ せ な い よ う に す る 方 法 を 示 し ま す 。 そ の 場 合 、 そ れ ら の コ マ ン ド に 対 す る override タ ー ゲ ッ ト を 空 に す る こ と に よ り 行 い ま す 。

        #!/usr/bin/make -f
        %:
                dh $@
        # 実 行 さ せ た く な い コ マ ン ド :
        override_dh_auto_test override_dh_compress override_dh_fixperms:ド キ ュ メ ン ト パ ッ ケ ー ジ を 作 成 す る の に 時 間 が か か る 場 合 が あ り ま す 。 こ の 場合 、 ア ー キ テ ク チ ャ 非 依 存 用 の

override タ ー ゲ ッ ト を 使 っ て ビ ル ド を 分 離 す る こ と が で き ま す 。 こ う す る と 、 build-arch や binary-arch を 実 行 す る と き 、 ド キ ュ メ ン ト パ ッ ケ ー ジ の ビ ル ド が 省 略 さ れ ま す 。

        #!/usr/bin/make -f
        %:
                dh $@
        override_dh_auto_build-indep:
                $(MAKE) -C docs
        # doc タ ー ゲ ッ ト 実 行 時 は テ ス ト は 不 要
        override_dh_auto_test-indep:
        override_dh_auto_install-indep:
                $(MAKE) -C docs install上 の 例 に 加 え 、 フ ァ イ ル に

chmod を 実 行 し な け れ ば な ら な い が そ れ は ア ー キ テ ク チ ャ 依 存 パ ッ ケ ー ジ を ビ ル ド す る 際 の み 必 要 で 、 ド キ ュ メ ン ト の み を ビ ル ド す る 時 に は 実 行 し な い と し た ら ど う な る で し ょ う か 。

        override_dh_fixperms-arch:
                dh_fixperms
                chmod 4755 debian/foo/usr/bin/foo

内 部 動 作

dh の 内 部 動 作 に 興 味 が あ る 人 向 け に 、 以 下 に 内 部 で ど の よ う に 動 作 し て い る の か を 記 載 し ま す 。

In compat 10 (or later), dh creates a stamp file debian/debhelper-build-stamp after the build step(s) are complete to avoid re-running them. It is possible to avoid the stamp file by passing --without=build-stamp to dh. This makes "no clean" builds behave more like what some people expect at the expense of possibly running the build and test twice (the second time as root or under fakeroot(1)).

Inside an override target, dh_* commands will create a log file debian/package.debhelper.log to keep track of which packages the command(s) have been run for. These log files are then removed once the override target is complete. 互 換 性 レ ベ ル 9 と そ れ 以 前 で は 、 各 debhelper コ マ ン ド は debian/package.debhelper.log に 実 行 が う ま く 行 っ た も の を 記 録 し ま す (こ れ は dh_clean が 消 去 し ま す )。 こ れ に よ り 、 dh は 既 に ど の コ マ ン ド が 実 行 さ れ た か 、 あ る い は ど の パ ッ ケ ー ジ に 対 し て 実 行 さ れ た か 、 何 の コ マ ン ド を 再 び ス キ ッ プ す れ ば よ い の か が わ か り ま す 。

Each time dh is run (in compat 9 or earlier), it examines the log, and finds the last logged command that is in the specified sequence. It then continues with the next command in the sequence.

dh に 処 理 の 流 れ の 名 前 を 指 定 す る こ と に よ り 、 debian/rules に 記 載 し た 依 存 関 係 に あ る タ ー ゲ ッ ト も 実 行 さ れ ま す 。 例 え ば 、 "binary" と い う 処 理 の 流 れ を 指 定 す る と 、 "install" タ ー ゲ ッ ト も 実 行 さ れ ま す 。

dh は 、 DH_INTERNAL_OPTIONS 環 境 変 数 を チ ェ ッ ク し 、 override タ ー ゲ ッ ト の 中 で 実 行 さ れ る debhelper コ マ ン ド に 情 報 を 渡 し ま す 。 こ の 環 境 変 数 に 記 載 さ れ て い る 内 容 は (実 際 に は 環 境 変 数 が 存 在 し て い る と ) 、 そ の 環 境 変 数 の 名 前 が 示 唆 す る と お り 、 ど の 時 点 で も debhelper コ マ ン ド の 動 作 に 影 響 を 与 え ま す 。

build-indep, install-indep, binary-indep の 一 連 の 処 理 に 記 載 さ れ て い る コ マ ン ド に は 、 ア ー キ テ ク チ ャ 非 依 存 パ ッ ケ ー ジ を ビ ル ド す る 時 に だ け 確 実 に 作 用 す る よ う に -i オ プ シ ョ ン を 使 っ て 情 報 が 引 き 渡 さ れ ま す 。 build-arch, install-arch, binary-arch の 一 連 の 処 理 に 対 し て は 、 -a に て 引 き 渡 さ れ 、 ア ー キ テ ク チ ャ 依 存 パ ッ ケ ー ジ に の み 確 実 に 作 用 す る よ う に 動 作 し ま す 。

参 照

debhelper(7) こ の プ ロ グ ラ ム は debhelper の 一 部 で す 。

作 者

Joey Hess <joeyh [AT] debian.org>