.\" Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" ======================================================================== .\" .IX Title "debhelper 7" .TH debhelper 7 "2018-06-28" "11.3.2~bpo9+2" "Debhelper" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "名前" .IX Header "名前" debhelper \- debhelper 関連ツール群 .SH "書式" .IX Header "書式" \&\fBdh_\fR\fI*\fR [\fB\-v\fR] [\fB\-a\fR] [\fB\-i\fR] [\fB\-\-no\-act\fR] [\fB\-p\fR\fIpackage\fR] [\fB\-N\fR\fIpackage\fR] [\fB\-P\fR\fItmpdir\fR] .SH "説明" .IX Header "説明" debhelper は、Debian パッケージのビルドを容易にするために使われます。debhelper の根底にある考えは「パッケージビルド時の各種の共通的な作業を自動化するために \fIdebian/rules\fR で用いられている、小さく単純で、容易に理解可能なツールをまとめて提供すること」です。つまり、あなた=パッケージを作成する人の負担を減らします。さらに、Debian ポリシーが変わった場合にはこのツール群を多少変更さえすれば、debhelper を使っているパッケージが新しいポリシーに適合するのに必要になるのは、再ビルドだけになります。 .PP debhelper を利用している典型的な \fIdebian/rules\fR ファイルは、複数の debhelper コマンドを順番に呼び出しているか、\fIdh\fR\|(1) を使って一連の処理を自動化しています。debhelper を使った rules ファイルの例は \&\fI/usr/share/doc/debhelper/examples/\fR にあります。 .PP debhelper を使って Debian パッケージを作成するには、サンプルの rules ファイルのどれかをコピーして手で修正するだけです。あるいは \&\fBdh-make\fR パッケージを利用してみてください。このパッケージには部分的に作業を自動化してくれる dh_make コマンドが含まれています。よりやさしい案内については、\fBmaint-guide-ja\fR パッケージに debhelper を使って初めてパッケージを作る人向けのチュートリアルが含まれています。 .PP Except where tool explicitly denotes otherwise, all of the debhelper tools assumes that they run from root directory of an unpacked source package. This is so they can locate find \fIdebian/control\fR and \fIdebian/compat\fR when needed. .SH "DEBHELPER コマンド" .IX Header "DEBHELPER コマンド" 以下が利用可能な debhelper コマンドの一覧です。詳細は、各コマンド付属の man ページを参照してください。 .IP "\fIdh_auto_build\fR\|(1)" 4 .IX Item "dh_auto_build" 自動的にパッケージをビルドする .IP "\fIdh_auto_clean\fR\|(1)" 4 .IX Item "dh_auto_clean" ビルド後、自動的にビルドディレクトリを消去する .IP "\fIdh_auto_configure\fR\|(1)" 4 .IX Item "dh_auto_configure" パッケージビルド前に自動的に configure を行う .IP "\fIdh_auto_install\fR\|(1)" 4 .IX Item "dh_auto_install" make install や類似コマンドを自動的に実行する .IP "\fIdh_auto_test\fR\|(1)" 4 .IX Item "dh_auto_test" パッケージのテストスイートを自動的に実行する .IP "\fIdh_bugfiles\fR\|(1)" 4 .IX Item "dh_bugfiles" カスタマイズされたバグレポート用ファイルをインストールする .IP "\fIdh_builddeb\fR\|(1)" 4 .IX Item "dh_builddeb" Debianバイナリパッケージのビルドを行う .IP "\fIdh_clean\fR\|(1)" 4 .IX Item "dh_clean" パッケージビルドディレクトリを消去する .IP "\fIdh_compress\fR\|(1)" 4 .IX Item "dh_compress" ビルドディレクトリでファイル圧縮とシンボリックリンクの修正を行う .IP "\fIdh_fixperms\fR\|(1)" 4 .IX Item "dh_fixperms" パッケージビルドディレクトリ内のファイル権限を修正する .IP "\fIdh_gconf\fR\|(1)" 4 .IX Item "dh_gconf" GConf デフォルトファイルをインストールし、スキーマに登録する .IP "\fIdh_gencontrol\fR\|(1)" 4 .IX Item "dh_gencontrol" control ファイルを生成し、インストールする .IP "\fIdh_icons\fR\|(1)" 4 .IX Item "dh_icons" Freedesktop 規格のアイコンキャッシュを更新する .IP "\fIdh_install\fR\|(1)" 4 .IX Item "dh_install" パッケージビルドディレクトリにファイルをインストールする .IP "\fIdh_installcatalogs\fR\|(1)" 4 .IX Item "dh_installcatalogs" \&\s-1SGML\s0 カタログファイルをインストール・登録する .IP "\fIdh_installchangelogs\fR\|(1)" 4 .IX Item "dh_installchangelogs" ビルドディレクトリに changelog をインストールする .IP "\fIdh_installcron\fR\|(1)" 4 .IX Item "dh_installcron" cron スクリプトを etc/cron.* へインストールする .IP "\fIdh_installdeb\fR\|(1)" 4 .IX Item "dh_installdeb" \&\s-1DEBIAN\s0 ディレクトリにファイルをインストールする .IP "\fIdh_installdebconf\fR\|(1)" 4 .IX Item "dh_installdebconf" ビルドディレクトリの debconf が使うファイルをインストールする .IP "\fIdh_installemacsen\fR\|(1)" 4 .IX Item "dh_installemacsen" Emacsのアドオンパッケージを登録する .IP "\fIdh_installifupdown\fR\|(1)" 4 .IX Item "dh_installifupdown" if-up と if-down フックをインストールします .IP "\fIdh_installinfo\fR\|(1)" 4 .IX Item "dh_installinfo" info ファイルをインストールする .IP "\fIdh_installlogcheck\fR\|(1)" 4 .IX Item "dh_installlogcheck" etc/logcheck/ に logcheck 用ルールファイルをインストールする .IP "\fIdh_installlogrotate\fR\|(1)" 4 .IX Item "dh_installlogrotate" logrotate用設定ファイルをインストールする .IP "\fIdh_installmenu\fR\|(1)" 4 .IX Item "dh_installmenu" ビルドディレクトリへ Debian メニューファイルをインストールする .IP "\fIdh_installmime\fR\|(1)" 4 .IX Item "dh_installmime" mime ファイルをビルドディレクトリへインストールする .IP "\fIdh_installmodules\fR\|(1)" 4 .IX Item "dh_installmodules" カーネルモジュールを登録する .IP "\fIdh_installpam\fR\|(1)" 4 .IX Item "dh_installpam" pam サポートファイルをインストールする .IP "\fIdh_installppp\fR\|(1)" 4 .IX Item "dh_installppp" ppp 用の ip-up, ip-down ファイルをインストールする .IP "\fIdh_installudev\fR\|(1)" 4 .IX Item "dh_installudev" udev 用ルールファイルをインストールする .IP "\fIdh_installwm\fR\|(1)" 4 .IX Item "dh_installwm" ウィンドウマネージャを登録する .IP "\fIdh_installxfonts\fR\|(1)" 4 .IX Item "dh_installxfonts" X 用フォント群の登録を行う .IP "\fIdh_link\fR\|(1)" 4 .IX Item "dh_link" パッケージビルドディレクトリ内でシンボリックリンクを作成する .IP "\fIdh_lintian\fR\|(1)" 4 .IX Item "dh_lintian" ビルドディレクトリに lintian への override ファイルをインストールする .IP "\fIdh_listpackages\fR\|(1)" 4 .IX Item "dh_listpackages" debhelper が処理するバイナリパッケージの一覧を列挙する .IP "\fIdh_md5sums\fR\|(1)" 4 .IX Item "dh_md5sums" DEBIAN/md5sums ファイルを生成する .IP "\fIdh_movefiles\fR\|(1)" 4 .IX Item "dh_movefiles" debian/tmp からサブパッケージへファイルを移動する .IP "\fIdh_perl\fR\|(1)" 4 .IX Item "dh_perl" Perlへの依存関係を検討し、MakeMaker 実行後に生成したものを消去する .IP "\fIdh_prep\fR\|(1)" 4 .IX Item "dh_prep" バイナリパッケージビルドの事前準備として諸々の消去を行う .IP "\fIdh_shlibdeps\fR\|(1)" 4 .IX Item "dh_shlibdeps" 共有ライブラリの依存関係を計算する .IP "\fIdh_strip\fR\|(1)" 4 .IX Item "dh_strip" 実行ファイル、共有ファイル、静的ライブラリのデバッグ情報を削る .IP "\fIdh_testdir\fR\|(1)" 4 .IX Item "dh_testdir" Debian パッケージをビルドする前にディレクトリの状態を検証する .IP "\fIdh_usrlocal\fR\|(1)" 4 .IX Item "dh_usrlocal" usr/local ディレクトリをメンテナスクリプトへ移行する .SS "廃止されたコマンド一覧" .IX Subsection "廃止されたコマンド一覧" 廃止されており、使うべきでない debhelper コマンド一覧 .IP "\fIdh_installmanpages\fR\|(1)" 4 .IX Item "dh_installmanpages" 古いスタイルの man ページのインストール用プログラム (廃止) .SS "他のコマンド" .IX Subsection "他のコマンド" プログラムの名前が \fBdh_\fR で始まり、先のリストにないものは、debhelper パッケージ付属のプログラムではありません。しかし、このような名前を持つコマンドは、このページに記述されている他のプログラムのように動作するべきです。 .SH "DEBHELPER 設定ファイル" .IX Header "DEBHELPER 設定ファイル" debhelper のコマンドの多くは、どのように動作するかについて \fIdebian/\fR ディレクトリ以下にあるファイルを用います。共通の \&\fIdebian/changelog\fR や \fIdebian/control\fR はすべてのパッケージに存在していますが、これに加えて特定の debhelper コマンドの動作を制御できる追加ファイルがあります。これらのファイルは、大抵 debian/\fIpackage\fR.foo というファイル名です (もちろん、\fIpackage\fR は処理しようとしているパッケージ名に変えてください)。 .PP 例えば、\fBdh_installdocs\fR では、インストールするドキュメントの一覧を得るのに \fIdebian/package.docs\fR という名前のファイルを利用します。各コマンドが使うファイルの名前とフォーマットについては、詳細はコマンドの man ページを参照してください。大抵、これらのファイルでは1行ごとに処理するファイルを1つずつ列挙します。いくつかの debhelper プログラムでは、ファイルと宛先の組み合わせや、もう少々複雑なフォーマットなどを使います。 .PP Note for the first (or only) binary package listed in \fIdebian/control\fR, debhelper will use \fIdebian/foo\fR when there's no \fIdebian/\fIpackage\fI.foo\fR file. However, it is often a good idea to keep the \fI\fIpackage\fI.\fR prefix as it is more explicit. The primary exception to this are files that debhelper by default installs in every binary package when it does not have a package prefix (such as \fIdebian/copyright\fR or \fIdebian/changelog\fR). .PP 稀ではありますが、これらのファイルを、異なるアーキテクチャ/異なる \s-1OS\s0 用にそれぞれ用意したい場合があります。ファイル名が debian/\fIpackage\fR.foo.\fI\s-1ARCH\s0\fR や、debian/\fIpackage\fR.foo.\fI\s-1OS\s0\fR のものが存在すると、"\fBdpkg-architecture \-qDEB_HOST_ARCH\fR\*(L" / \*(R"\fBdpkg-architecture \&\-qDEB_HOST_ARCH_OS\fR" でそれぞれ指定した \fI\s-1ARCH\s0\fR と \fI\s-1OS\s0\fR を含むものが、通常のファイルよりも優先的に使われます。 .PP 多くの場合、これらの設定ファイルは、いろいろな種類のファイルを列挙して指定するのに使われます。例えばインストールすべきドキュメントやサンプルファイルであったり、移動すべきファイルだったり等となります。シェルのワイルドカード文字列 (\fB?\fR, \fB*\fR 及び \fB[\fR\fI..\fR\fB]\fR 文字クラス) をファイルに含める事ができ、状況次第ではこちらが望ましい事もあります。また、行頭がB <#> で始まる行は無視される事を利用して、コメントを記載できます。 .PP これらファイルの文法は、読解・修正しやすいよう、意図的にシンプルにしてあります。もし、さらに強力で複雑な事をしたければ、これらのファイルに実行権限を付与し、状況にあった出力をするプログラムを作成してください。ただし、この場合の出力結果では、後の処理でワイルドカードは展開されず、コメントも取り除かれない事に気をつけてください。 .SH "DEBHELPER 間で共有されるオプション" .IX Header "DEBHELPER 間で共有されるオプション" 以下のコマンドラインオプションは、全ての debhelper プログラムでサポートされています。 .IP "\fB\-v\fR, \fB\-\-verbose\fR" 4 .IX Item "-v, --verbose" 冗長出力モード。パッケージビルドディレクトリを変更するようなコマンドを全て表示します。 .IP "\fB\-\-no\-act\fR" 4 .IX Item "--no-act" 実際の処理を行いません。\-v オプションと併用すると、コマンドがどのような処理を行うかが出力されます。 .IP "\fB\-a\fR, \fB\-\-arch\fR" 4 .IX Item "-a, --arch" アーキテクチャ依存パッケージを、\fB\s-1DEB_HOST_ARCH\s0\fR アーテキクチャ向けにビルドするように動作します。 .IP "\fB\-i\fR, \fB\-\-indep\fR" 4 .IX Item "-i, --indep" 全てのアーキテクチャ非依存パッケージに対して処理を行います。 .IP "\fB\-p\fR\fIpackage\fR, \fB\-\-package=\fR\fIpackage\fR" 4 .IX Item "-ppackage, --package=package" \&\fIpackage\fR で指定されたパッケージに対して処理を行います。複数のパッケージを debhelper に処理させる際には、繰り返し列挙して指定してください。 .IP "\fB\-s\fR, \fB\-\-same\-arch\fR" 4 .IX Item "-s, --same-arch" 廃止された \fB\-a\fR のエイリアスです。 .Sp This option is removed in compat 12. .IP "\fB\-N\fR\fIpackage\fR, \fB\-\-no\-package=\fR\fIpackage\fR" 4 .IX Item "-Npackage, --no-package=package" \&\fB\-a\fR, \fB\-i\fR, \fB\-p\fR オプションで処理すべきパッケージとして対象としていても、指定されているパッケージについては処理を行わないようにします。 .IP "\fB\-\-remaining\-packages\fR" 4 .IX Item "--remaining-packages" この debhelper コマンドにより、すでに処理済のパッケージについては処理をしないようにします (つまり、debhelper のログにコマンドの記録があるものは処理しない)。例えば、いくつかのバイナリパッケージだけに対して特別なオプション付きでコマンドを呼び出し、残りのパッケージに対しては本オプションをつけてコマンドを呼び出し、デフォルト設定による処理を行うという事ができます。 .IP "\fB\-\-ignore=\fR\fIfile\fR" 4 .IX Item "--ignore=file" 特定のファイルを無視します。\fIdebian/\fR 以下に実際には debhelper コマンドが実行しては困るような debhelper 設定ファイルがあるような時に利用できます。ただ、\fIdebian/compat\fR, \fIdebian/control\fR, \&\fIdebian/changelog\fR は無視する事ができません。これは動作の都合上、これらのファイルを無視するわけにはいかないからです。 .Sp 例えば、開発元 (upstream) が \fIdebian/init\fR を提供しているが \fBdh_installinit\fR でインストールして欲しくは無い場合、\fB\-\-ignore=debian/init\fR を使うことになります。 .IP "\fB\-P\fR\fItmpdir\fR, \fB\-\-tmpdir=\fR\fItmpdir\fR" 4 .IX Item "-Ptmpdir, --tmpdir=tmpdir" \&\fItmpdir\fR をパッケージビルドディレクトリとして利用します。デフォルトでは debian/\fIpackage\fR ディレクトリが使われます。 .IP "\fB\-\-mainpackage=\fR\fIpackage\fR" 4 .IX Item "--mainpackage=package" このあまり使われないオプションは、debhelper コマンドが \*(L"main package\*(R" とみなすパッケージ、つまり、\fIdebian/control\fR の最初に記載されたパッケージを変更するものです。これにより、通常の \&\fIdebian/package.foo\fR ファイルではなく \fIdebian/foo\fR ファイルが使われるようになります。 .IP "\fB\-O=\fR\fIoption\fR|\fIbundle\fR" 4 .IX Item "-O=option|bundle" これは、実行するすべてのコマンドへユーザー指定のオプションを渡す際に \fIdh\fR\|(1) が利用します。コマンドが指定のオプションをサポートしている、あるいは内蔵している場合は、オプションは効果を発揮します。コマンドが指定されたオプションをサポートしていない場合 (あるいは、内蔵しているオプションにない場合)、オプションは無視されます。 .SH "DEBHELPER の共通オプション" .IX Header "DEBHELPER の共通オプション" 以下のコマンドラインオプションが、debhelper プログラムのうち複数でサポートされています。「オプションが何を意味するか」という完全な説明は、各コマンドの man ページを参照してください。 .IP "\fB\-n\fR" 4 .IX Item "-n" \&\fIpostinst\fR, \fIpostrm\fR 等のスクリプトに変更を加えません。 .IP "\fB\-X\fR\fIitem\fR, \fB\-\-exclude=\fR\fIitem\fR" 4 .IX Item "-Xitem, --exclude=item" item を処理対象から除外します。複数の item を除外するためにこのオプションを複数指定して使う。ことができます。通常、\efIitem\efR はファイル名の一部で、指定されたテキストが含まれるファイルはすべて除外されます。 .IP "\fB\-A\fR, \fB\-\-all\fR" 4 .IX Item "-A, --all" コマンドラインで指定したファイル、あるいは他の item について、最初のパッケージだけでなく全パッケージに対して処理を行います。 .SH "ビルドシステム用オプション" .IX Header "ビルドシステム用オプション" 以下のコマンドラインオプションが、すべての \fBdh_auto_\fR\fI*\fR の debhelper プログラムによってサポートされています。これらのプログラム群は様々なビルドシステムをサポートしており、通常の場合は推定によって、どのビルドシステムがどのように使われるかを決定します。これらのコマンドラインオプションを使って、デフォルトの動作を override することが可能です。大抵の場合は、これらのオプションはまず \fIdh\fR\|(1) に渡され、それからすべての \&\fBdh_auto_\fR\fI*\fR プログラムへと渡されます。 .IP "\fB\-S\fR\fIbuildsystem\fR, \fB\-\-buildsystem=\fR\fIbuildsystem\fR" 4 .IX Item "-Sbuildsystem, --buildsystem=buildsystem" パッケージに合わせて自動的に選択されたビルドシステムではなく、\fIbuildsystem\fR で指定したビルドシステムを強制的に使用します。 .IP "\fB\-D\fR\fIdirectory\fR, \fB\-\-sourcedirectory=\fR\fIdirectory\fR" 4 .IX Item "-Ddirectory, --sourcedirectory=directory" オリジナルのソースツリーが、Debian ソースパッケージツリーの最上位のディレクトリではなく、\fIdirectory\fR で指定した場所にあると仮定します。 .IP "\fB\-B\fR[\fIdirectory\fR], \fB\-\-builddirectory=\fR[\fIdirectory\fR]" 4 .IX Item "-B[directory], --builddirectory=[directory]" ソースのビルドディレクトリ外にある、指定した \fIdirectory\fR をビルドディレクトリとしてソースのビルドを有効にします。\fIdirectory\fR パラメータが省略された場合はデフォルトのビルドディレクトリが利用されます。 .Sp このオプションが指定されない場合は、ビルドシステムがソースツリー外でのビルドを必要とする、あるいはそちらが望ましいと判断されない限り、デフォルトではソースディレクトリ内部でビルドが行われます。その場合、\fB\-\-builddirectory\fR が指定されていなくてもデフォルトのビルドディレクトリが使用されます。 .Sp ビルドシステムが、ソースディレクトリ以外の場所でビルドを選択してしまうけれどもソースディレクトリでのビルドが可能な場合には、ソースディレクトリのパスと同じものとしてビルドディレクトリのパスを指定すれば、ソースディレクトリ内でビルドを行うようにできます。 .IP "\fB\-\-parallel\fR, \fB\-\-no\-parallel\fR" 4 .IX Item "--parallel, --no-parallel" ビルドシステムがサポートしている場合、並列ビルドを有効にするかどうかを管理します。どれだけの数でジョブを並列にするかは、ビルドが行われる際に \&\fB\s-1DEB_BUILD_OPTIONS\s0\fR 環境変数によって決定されます (Debian ポリシーマニュアル、4.9.1章)。ビルドシステム固有の制限に影響を受ける場合もあります。 .Sp どちらのオプションも指定されていない場合、debhelper は現在では互換性レベル 10 (以降) の場合は \fB\-\-parallel\fR をデフォルトに、そうでない場合は \fB\-\-no\-parallel\fR が指定されます。 .Sp これらのオプションが不要である場合、あるいはこのオプションだけが渡された場合には、\fBdh\fR はこれらのオプションをサブプロセスに渡すのを最適化のため避けようとします。特に、これは \fB\s-1DEB_BUILD_OPTIONS\s0\fR が \&\fIparallel\fR パラメーターを持たない (またはこの値が 1 である) 場合に起こります。 .IP "\fB\-\-max\-parallel=\fR\fImaximum\fR" 4 .IX Item "--max-parallel=maximum" このオプションは \fB\-\-parallel\fR とともに利用し、並列ビルドにおける並列数の上限を引き上げます。もしパッケージが、とある並列数まででしかビルドできないことがわかっている場合、このオプションを使って最大限の並列数または利用したい並列数を指定できます。 .Sp 特に、最大値を 1 に設定するのは \fB\-\-no\-parallel\fR を使うのと同じ効果があります。 .IP "\fB\-\-list\fR, \fB\-l\fR" 4 .IX Item "--list, -l" このシステム上で、debhelper がサポートしているビルドシステム一覧を表示します。この一覧にはデフォルトのビルドシステム、そしてサードパーティー製 (であると明記されている) ビルドシステムの双方を含みます。また、どれが自動的に選択されたか、あるいは手動で \fB\-\-buildsystem\fR オプションにて何が指定されたのかも表示します。 .SH "互換性レベル" .IX Header "互換性レベル" 時が経ち、後方互換性を崩すような大きな変更を debhelper にする必要がでてきました。これは、変化に対して debhelper の構造を綺麗でうまく設計されたままに保つ必要があることと、debhelper の作者がより経験を得てより深く考えるようになったためです。このような大きな変更によって既存のパッケージを壊さないようにするため、互換性レベルという考え方が導入されました。debhelper にどの互換性レベルを使うべきかを指定することで、これに合わせて動作が様々に変化します。互換性レベルは \fIdebian/compat\fR ファイルで指定され、このファイルは必須となっています。 .PP 数字を \fIdebian/compat\fR に記述して、debhelper にどの互換性レベルを使うかを教えます。例えば、v11 モードを使うには次の様にします: .PP .Vb 1 \& % echo 11 > debian/compat .Ve .PP パッケージは、利用する互換性レベルと同じ (あるいはそれ以上) のバージョンの debhelper プログラムをビルド依存として設定する必要があります。互換性レベル 11 の場合、debian/control ファイルが以下の様になっていることを確認してください: .PP .Vb 1 \& Build\-Depends: debhelper (>= 11~) .Ve .PP 特に指定が無い場合、debhelper のドキュメントは最新の互換性レベルを利用している事を前提とおり、多くの場合では以前の互換性レベルではどう動作が異なるかについては言及していません。最新の互換性レベルを使っていない場合には、それ以前の互換性レベルとはどう動作が違うのか、以下の説明を参照しておく事をおすすめします。 .SS "Supported compatibility levels" .IX Subsection "Supported compatibility levels" 利用可能な互換性レベルは以下の通りです: .IP "v5" 4 .IX Item "v5" これはサポートされている最低限の互換性レベルです。 .Sp これ以前の互換性レベルからアップグレードしようとしている場合、\fIdebhelper\-obsolete\-compat\fR\|(7) を確認して下さい。 .Sp このモードは廃止されました。 .IP "v6" 4 .IX Item "v6" v5 からの変更点: .RS 4 .IP "\-" 8 メンテナンス用スクリプトの一部を生成するコマンドは、\fIprerm\fR と \fIpostrm\fR スクリプト用にこれらを逆順に並び替えるようになりました。 .IP "\-" 8 \&\fBdh_installwm\fR は \fIx\-window\-manager.1.gz\fR という slave な man ページへリンクを作るようになりました。これはパッケージビルドディレクトリ内の \fIusr/share/man/man1\fR ディレクトリに man ページがある場合に行われます。 .IP "\-" 8 \&\fBdh_builddeb\fR は、\fB\s-1CVS:\s0.svn:.git\fR のように除外する対象を \fB\s-1DH_ALWAYS_EXCLUDE\s0\fR に指定しても該当するファイルを削除していませんでした。本互換性レベルでは削除するようになっています。 .IP "\-" 8 \&\fBdh_installman\fR は、パッケージビルドディレクトリにすでに存在する man ページを上書きしても良くなりました。これより以前の互換性レベルの元では、このような動作は何の警告もなく拒絶されていました。 .RE .RS 4 .Sp このモードは廃止されました。 .RE .IP "v7" 4 .IX Item "v7" v6 からの変更点: .RS 4 .IP "\-" 8 もし、\fIdebian/tmp\fR 以下にあるようなファイルが、カレントディレクトリにない場合 (もしくは、\fB\-\-sourcedir\fR で指定したディレクトリにない場合) 、\fBdh_install\fR は \fIdebian/tmp\fR を探しにいくようになりました。この振る舞いの変更により、\fBdh_install\fR に特に何か引数を指定しなくても、\fIdebian/tmp\fR にインストールしようとする \fBdh_auto_install\fR と協調して動作できるようになりました。 .IP "\-" 8 \&\fBdh_clean\fR は \fIdebian/clean\fR を読み、そこに記載されているファイルを消すようになりました。 .IP "\-" 8 \&\fBdh_clean\fR はビルドディレクトリの最上位の階層にある \fI*\-stamp\fR ファイルを消すようになりました。 .IP "\-" 8 \&\fBdh_installchangelogs\fR は、何も指定しなくてもどのファイルが upstream の changelog であるかを推定するようになりました。 .RE .RS 4 .Sp このモードは廃止されました。 .RE .IP "v8" 4 .IX Item "v8" v7 からの変更点: .RS 4 .IP "\-" 8 未定義のオプションを渡そうとすると、警告文を出して処理続行するのではなく、エラーにして処理を失敗させるようになりました。 .IP "\-" 8 \&\fBdh_makeshlibs\fR は、shlibs ファイルを作成する為に、\fBdpkg-gensymbols\fR をすべての共有ライブラリに対して実行するようになりました。\fB\-X\fR を指定すると実行を除外するライブラリを指定できます。また、通常ではない場所にライブラリがある為 \fBdh_makeshlibs\fR へ渡す前に \&\fBdpkg-gensymbols\fR が処理できないような場合、パッケージのビルドが失敗に終わるようになりました。 .IP "\-" 8 \&\fBdh\fR は最初のパラメータとして、一連の処理の名前を指定し、その次にオプションを記載しなければならなくなりました。つまり、"\fBdh $@ \&\-\-foo\fR\*(L" が正しく、\*(R"\fBdh \-\-foo $@\fR" は間違いとなります。 .IP "\-" 8 \&\fBdh_auto_\fR\fI*\fR は \fIMakefile.PL\fR ファイルよりも、Perl の \fBModule::Build\fR モジュールを優先して利用するようになりました。 .RE .RS 4 .Sp このモードは廃止されました。 .RE .IP "v9" 4 .IX Item "v9" v8 からの変更点: .RS 4 .IP "\-" 8 multiarch をサポートします。特に \fBdh_auto_configure\fR は autoconfコマンドへ \-\-libdir や \&\-\-libexecdir に multiarch 用途のディレクトリを渡すようになっています。 .IP "\-" 8 dh コマンドは debian/rules に記載されているターゲット間の一般的な依存性を考慮します。そのため、\*(L"dh binary\*(R" は rules ファイルに存在する build, build-arch, build-indep, install 等のターゲットを実行していきます。つまり、他のターゲットに関する依存関係をいちいち細かく明示した binary ターゲットを用意する必要はありません。 .IP "\-" 8 \&\fBdh_strip\fR はデバッグシンボルファイルを圧縮し、\-dbg パッケージのインストール時に必要とする容量を削減します。 .IP "\-" 8 \&\fBdh_auto_configure\fR は、autoconf を使ったときに、\-\-libexecdir にソースパッケージ名を追加しなくなりました。 .IP "\-" 8 \&\fBdh\fR は \-\-with=python\-support オプションを、デフォルトでは無効にするようになりました。 .Sp (Obsolete: As the \fBdh_pysupport\fR tool was removed from Debian stretch. Since debhelper/10.3, \fBdh\fR no longer enables this sequence add-on regardless of compat level) .IP "\-" 8 すべての \fBdh_auto_\fR\fI*\fR debhelper プログラムと \fBdh\fR コマンドは、\fBdpkg-buildflags\fR で指定される環境変数を設定します。すでに該当する環境変数が設定されている場合は設定を行いません。 .IP "\-" 8 \&\fBdh_auto_configure\fR は、\fBdpkg-buildflags\fR によって設定されるCFLAGS、CPPFLAGS, \s-1LDFLAGS\s0 パラメータを \fIMakefile.PL\fR や \fIBuild.PL\fR へ引き渡します。 .IP "\-" 8 \&\fBdh_strip\fR は build-id に基づく場所に、分離したデバッグシンボルを配置します。 .IP "\-" 8 実行可能権限を付与した debhelper 用の設定ファイルは、実行され出力が設定として扱われます。 .RE .RS 4 .RE .IP "v10" 4 .IX Item "v10" v9 からの変更点: .RS 4 .IP "\-" 8 \&\fBdh_installinit\fR は、init スクリプトとして debian/\fIpackage\fR という名前でファイルをインストールしなくなりました。 .IP "\-" 8 \&\fBdh_installdocs\fR は、アーキテクチャ \*(L"all\*(R" と 非 \*(L"all\*(R" のパッケージ間で \-\-link\-doc で作られたリンクが binNMU を壊すのを検知してエラーを吐き出すようになります。 .IP "\-" 8 \&\fBdh\fR は、実行している debhelper コマンドをスキップした場合にはパッケージビルドディレクトリを作成しなくなりました。これは debhelper コマンドのみを使ってビルドされているパッケージには影響しませんが、debhelper に含まれていないコマンドのバグを暴くかもしれません。 .IP "\-" 8 \&\fBdh_installdeb\fRは、メンテナが提供した debian/\fIpackage\fR.shlibs ファイルをインストールしなくなりました。現在これは、\fBdh_makeshlibs\fR によって代わりに行われます。 .IP "\-" 8 \&\fBdh_installwm\fR は、man ページが見つからない場合に壊れたパッケージを作成するのを拒否するようになりました (x\-window-manager の alternative 登録に必要)。 .IP "\-" 8 debhelper は、並列ビルドをサポートしている全てのビルドシステムで、デフォルトで \fB\-\-parallel\fR を使用します。これは、\fB\-\-no\-parallel\fR を使うか \fB\-\-max\-parallel\fR へ 1 の値を渡すことで無効にできます。 .IP "\-" 8 \&\fBdh\fR コマンドは、使われなくなった \*(L"手動シーケンスコントロール\*(R" パラメーター(\fB\-\-before\fR, \fB\-\-after\fR など)を受け付けなくなります。代わりに override ターゲットを使ってください。 .IP "\-" 8 \&\fBdh\fR コマンドはどのコマンドが実行されたのかを追跡するのにログファイルを使わなくなります。\fBdh\fR コマンドは \fI依然として\fR 既に \&\*(L"build\*(R" シーケンスを実行したかどうかを記録し、もし実行されていたらスキップします。 .Sp これの主な影響: .RS 8 .IP "\-" 4 これにより、\fIinstall\fR 及び \fIbinary\fR シーケンスを (\*(L"clean 及び rebuild\*(R" のサイクルを全て実施する必要が無くなり) 気軽に再実行可能になったため、デバッグがより簡単になっています。 .IP "\-" 4 The main caveat is that \fBdh_*\fR now only keeps track of what happened in a single override target. When all the calls to a given \fBdh_cmd\fR command happens in the same override target everything will work as before. .Sp 動かなくなる可能性がある例: .Sp .Vb 2 \& override_dh_foo: \& dh_foo \-pmy\-pkg \& \& override_dh_bar: \& dh_bar \& dh_foo \-\-remaining .Ve .Sp この場合、\fBdh_foo \-\-remaining\fR の呼び出しは、\fBdh_foo \-pmy\-pkg\fR が分かれている override ターゲット内にあるため、\fImy-pkg\fR \fIも\fR含みます。この問題は \fB\-\-remaining\fR に限らず \fB\-a\fR, \fB\-i\fR なども含みます。 .RE .RS 8 .RE .IP "\-" 8 \&\fBdh_installdeb\fR コマンドは \fImaintscript\fR 設定ファイル内の行をシェルエスケープするようになりました。これは元々意図していた動作でしたが正しく動作しておらず、パッケージが不完全なシェルエスケープ (例: ファイル名のクォート) に依存するようになっていました。 .IP "\-" 8 \&\fBdh_installinit\fR コマンドは標準で \fB\-\-restart\-after\-upgrade\fR を利用するようになりました。以前の動作が必要なパッケージには \fB\-\-no\-restart\-after\-upgrade\fR を利用してください。 .IP "\-" 8 \&\fBautoreconf\fR シーケンスが標準で有効になりました。指定のパッケージでこの動作を望まない場合は、\fBdh\fR に \fB\-\-without autoreconf\fR を指定してください。 .IP "\-" 8 \&\fBsystemd\fR シーケンスが標準で有効になりました。指定のパッケージでこの動作を望まない場合は、\fBdh\fR に \fB\-\-without systemd\fR を指定してください。 .RE .RS 4 .RE .IP "v11" 4 .IX Item "v11" これが動作推奨モードです。 .Sp v10 からの変更点: .RS 4 .IP "\-" 8 \&\fBdh_installinit\fR no longer installs \fIservice\fR or \fItmpfile\fR files, nor generates maintainer scripts for those files. Please use the new \&\fBdh_installsystemd\fR helper. .IP "\-" 8 The \fBdh_systemd_enable\fR and \fBdh_systemd_start\fR helpers have been replaced by the new \fBdh_installsystemd\fR helper. For the same reason, the \fBsystemd\fR sequence for \fBdh\fR has also been removed. If you need to disable the \&\fBdh_installsystemd\fR helper tool, please use an empty override target. .Sp Please note that the \fBdh_installsystemd\fR tool has a slightly different behaviour in some cases (e.g. when using the \fB\-\-name\fR parameter). .IP "\-" 8 \&\fBdh_installdirs\fR no longer creates debian/\fIpackage\fR directories unless explicitly requested (or it has to create a subdirectory in it). .Sp The vast majority of all packages will be unaffected by this change. .IP "\-" 8 The \fBmakefile\fR buildsystem now passes \fBINSTALL=install \&\-\-strip\-program=true\fR to \fImake\fR\|(1). Derivative buildsystems (e.g. \fBconfigure\fR or \fBcmake\fR) are unaffected by this change. .IP "\-" 8 The \fBautoconf\fR buildsystem now passes \fB\-\-runstatedir=/run\fR to \&\fI./configure\fR. .IP "\-" 8 The \fBcmake\fR buildsystem now passes \fB\-DCMAKE_INSTALL_RUNSTATEDIR=/run\fR to \&\fIcmake\fR\|(1). .IP "\-" 8 \&\fBdh_installman\fR will now prefer detecting the language from the path name rather than the extension. .IP "\-" 8 \&\fBdh_auto_install\fR will now only create the destination directory it needs. Previously, it would create the package build directory for all packages. This will not affect packages that only build with debhelper commands, but it may expose bugs in commands not included in debhelper. .IP "\-" 8 The helpers \fBdh_installdocs\fR, \fBdh_installexamples\fR, \fBdh_installinfo\fR, and \&\fBdh_installman\fR now error out if their config has a pattern that does not match anything or reference a path that does not exist. .Sp Known exceptions include building with the \fBnodoc\fR profile, where the above tools will silently permit failed matches where the patterns are used to specify documentation. .IP "\-" 8 The helpers \fBdh_installdocs\fR, \fBdh_installexamples\fR, \fBdh_installinfo\fR, and \&\fBdh_installman\fR now accept the parameter \fB\-\-sourcedir\fR with same meaning as \fBdh_install\fR. Furthermore, they now also fall back to \fIdebian/tmp\fR like \&\fBdh_install\fR. .Sp Migration note: A bug in debhelper 11 up to 11.1.5 made \fBdh_installinfo\fR incorrectly ignore \fB\-\-sourcedir\fR. .IP "\-" 8 The \fBperl-makemaker\fR and \fBperl-build\fR build systems no longer pass \fB\-I.\fR to perl. Packages that still need this behaviour can emulate it by using the \fB\s-1PERL5LIB\s0\fR environment variable. E.g. by adding \fBexport PERL5LIB=.\fR in their debian/rules file (or similar). .IP "\-" 8 The \fB\s-1PERL_USE_UNSAFE_INC\s0\fR environment variable is no longer set by \fBdh\fR or any of the \fBdh_auto_*\fR tools. It was added as a temporary work around to avoid a lot of packages failing to build at the same time. .Sp Note this item will eventually become obsolete as upstream intends to drop support for the \fB\s-1PERL_USE_UNSAFE_INC\s0\fR environment variable. When perl drops support for it, then this variable will be removed retroactively from existing compat levels as well. .IP "\-" 8 The \fBdh_makeshlibs\fR helper will now exit with an error if objdump returns a non-zero exit from analysing a given file. .IP "\-" 8 The \fBdh_installdocs\fR and \fBdh_installexamples\fR tools will now attempt to guess the \*(L"main package\*(R" for a given documentation package (e.g. \fIpkg-doc\fR will have \fIpkg\fR as main package if the latter exists). If a main package is found, \fImost\fR of the documentation will be installed into \fI/usr/share/doc/\fImain-pkg\fI\fR by default as recommended by Debian policy §12.3 since version 3.9.7. Notable exceptions include the copyright file and changelog files. .Sp The \fB\-\-doc\-main\-package\fR option can be used when the auto-detection is insufficient. .IP "\-" 8 The \fBdh_strip\fR and \fBdh_shlibdeps\fR tools no longer uses filename patterns to determine which files to process. Instead, they open the file and look for an \s-1ELF\s0 header to determine if a given file is an shared object or an \s-1ELF\s0 executable. .Sp This change may cause the tools to process more files than previously. .RE .RS 4 .RE .IP "v12" 4 .IX Item "v12" この互換性レベルは未だ開発中の状態です。使う場合は注意して使ってください。 .Sp Changes from v11 are: .RS 4 .IP "\-" 8 The \fBdh_makeshlibs\fR tool now generates shlibs files with versioned dependency by default. This means that \fB\-VUpstream\-Version\fR (a.k.a. \fB\-V\fR) is now the default. .Sp If an unversioned dependency in the shlibs file is wanted, this can be obtained by passing \fB\-VNone\fR instead. However, please see \&\fIdh_makeshlibs\fR\|(1) for the caveat of unversioned dependencies. .IP "\-" 8 The \fB\-s\fR (\fB\-\-same\-arch\fR) option is removed. Please use \fB\-a\fR (\fB\-\-arch\fR) instead. .IP "\-" 8 \&\fBdh_clean \-k\fR の起動は deprecate 警告ではなくエラーを起こすようになりました。 .IP "\-" 8 The \fB\-\-no\-restart\-on\-upgrade\fR option in \fBdh_installinit\fR has been removed. Please use the new name \fB\-\-no\-stop\-on\-upgrade\fR .IP "\-" 8 There was a bug in the \fBdoit\fR (and similar) functions from Debian::Debhelper::Dh_Lib that made them spawn a shell in one particular circumstance. This bug is now removed and will cause helpers that rely on the bug to fail with a \*(L"command not found\*(R"\-error. .IP "\-" 8 The \fB\-\-list\-missing\fR and \fB\-\-fail\-missing\fR in \fBdh_install\fR has been removed. Please use \fBdh_missing\fR and its corresponding options, which can also see the files installed by other helpers. .IP "\-" 8 The \fBdh_installinit\fR helper no longer installs configuration for the upstart init system. Instead, it will abort the build if it finds an old upstart configuration file. The error is there to remind the package maintainer to ensure the proper removal of the conffiles shipped in previous versions of the package (if any). .IP "\-" 8 The \fBdh_installdeb\fR tool will do basic validation of some \&\fIdpkg\-maintscript\-helper\fR\|(1) commands and will error out if the commands appear to be invalid. .IP "\-" 8 The \fBdh_missing\fR tool will now default to \fB\-\-list\-missing\fR. .IP "\-" 8 The \fBdh_makeshlibs\fR tool will now only pass libraries to \&\fIdpkg\-gensymbols\fR\|(1) if the \s-1ELF\s0 binary has a \s-1SONAME \s0(containing \*(L".so\*(R"). .IP "\-" 8 The \fBdh_compress\fR tool no longer compresses examples (i.e. anything installed in \fI.) .IP "\-" 8 The standard sequence in \fBdh\fR now includes \fBdh_dwz\fR and \&\fBdh_installinitramfs\fR by default. This makes the \fBdwz\fR and \&\fBinstallinitramfs\fR sequences obsolete and they will now fail with an error. If you want to skip these commands, then please insert an empty override target for them in \fIdebian/rules\fR (e.g. \fIoverride_dh_dwz:\fR) .RE .RS 4 .RE .SH "付記" .IX Header "付記" .SS "複数のバイナリパッケージのサポート" .IX Subsection "複数のバイナリパッケージのサポート" ソースパッケージが複数のバイナリパッケージを生成する場合、デフォルトでは debhelper は実行時にすべてのバイナリパッケージを生成します。この場合ソースパッケージが、アーキテクチャ依存パッケージとアーキテクチャ非依存パッケージを同時に生成するとしたら、この振る舞いは正しくありません。というのも、\fIdebian/rules\fR では、アーキテクチャ依存パッケージを生成するなら binary-arch ターゲット内で生成する必要があり、アーキテクチャ非依存のパッケージならば、binary\-indep ターゲットで生成する必要がある為です。 .PP これを容易にする為、どのパッケージが debhelper プログラムによって処理されるかをよりコントロールするのと同様、すべての debhelper プログラムは \fB\-a\fR, \fB\-i\fR, \fB\-p\fR, \fB\-s\fR パラメータを解釈できます。これらのパラメータは重複可能です。何も指定しない場合、debhelper プログラムは、以下の例外を除いて control ファイルに列挙されたすべてのパッケージに対して処理を行います。 .PP まず、\fBdebian/control\fR 中の \fBArchitecture\fR フィールドが \fB\s-1DEB_HOST_ARCH\s0\fR アーキテクチャに一致しない全てのパッケージが除外されます (\*(L"Debian ポリシー 5.6.8 章\*(R")。 .PP また、 にあるドラフトのポリシーによると、\fB\s-1DEB_BUILD_PROFILES\s0\fR 環境変数と \fBdebian/control\fR 中のバイナリパッケージ節の \&\fBBuild-Profiles\fR フィールドの内容を元に追加でパッケージが除外されます。 .PP \fIInteraction between package selections and Build-Profiles\fR .IX Subsection "Interaction between package selections and Build-Profiles" .PP Build-Profiles affect which packages are included in the package selections mechanisms in debhelper. Generally, the package selections are described from the assumption that all packages are enabled. This section describes how the selections react when a package is disabled due to the active Build-Profiles (or lack of active Build-Profiles). .ie n .IP "\-a/\-\-arch, \-i/\-\-indep \s-1OR\s0 no selection options (a raw ""dh_X"" call)" 4 .el .IP "\-a/\-\-arch, \-i/\-\-indep \s-1OR\s0 no selection options (a raw ``dh_X'' call)" 4 .IX Item "-a/--arch, -i/--indep OR no selection options (a raw dh_X call)" The package disabled by Build-Profiles is silently excluded from the selection. .Sp Note you will receive a warning if \fIall\fR packages related to these selections are disabled. In that case, it generally does not make sense to do the build in the first place. .IP "\-N \fIpackage\fR / \-\-no\-package \fIpackage\fR" 4 .IX Item "-N package / --no-package package" The option is accepted and effectively does nothing. .IP "\-p \fIpackage\fR / \-\-package \fIpackage\fR" 4 .IX Item "-p package / --package package" The option is accepted, but debhelper will not act on the package. .PP Note that it does not matter whether a package is enabled or disabled by default. .SS "メンテナスクリプトの自動生成" .IX Subsection "メンテナスクリプトの自動生成" debhelper コマンドには、Debian メンテナスクリプトの一部を自動的に生成するものがあります。もし、既存の Debian メンテナスクリプトに自動生成された部分を含むようにしたければ、コードを追加したい場所に \fB#DEBHELPER#\fR と追記してください。\fB#DEBHELPER#\fR は \fBdh_installdeb\fR が実行される際に、自動生成されたコードへ置換されます。 .PP スクリプトがまったく存在しないが debhelper が何かをスクリプトに追加する必要がある場合、debhelper はスクリプトを一式生成します。 .PP \&\-n パラメーターを指定すると、このような debhelper プログラムによるスクリプトの自動生成を行わないようにできます (上記参照)。 .PP 挿入されるコードはシェルスクリプトなので、Perl スクリプトには直接埋め込めない事に注意してください。もし何かを Perl スクリプトに埋め込みたい場合、以下に一例を挙げます ($1, \f(CW$2\fR 等は set コマンドにより設定される事に注意): .PP .Vb 12 \& my $temp="set \-e\enset \-\- @ARGV\en" . << \*(AqEOF\*(Aq; \& #DEBHELPER# \& EOF \& if (system($temp)) { \& my $exit_code = ($? >> 8) & 0xff; \& my $signal = $? & 0x7f; \& if ($exit_code) { \& die("debhelper スクリプトは失敗しました。エラーコード: ${exit_code}"); \& } else { \& die("debhelper スクリプトは以下のシグナルで終了されました: ${signal}"); \& } \& } .Ve .SS "様々な依存関係の自動生成" .IX Subsection "様々な依存関係の自動生成" debhelper は他のパッケージに依存するようなパッケージを作成することがあります。例えば、\fIdh_installdebconf\fR\|(1) を使うと、ビルドしたパッケージは debconf パッケージにも依存するようになります。あるいは \fIdh_installxfonts\fR\|(1) を使うと、特定のバージョンの xutils に依存することになります。これらの様々な依存関係を追いかけるのは、debhelper がどのような処理を行うかによるために面倒なことになりがちです。そのため、debhelper は 自動的に依存関係を解決する機能を提供します。 .PP 他のパッケージに依存するようなパッケージを生成する debhelper コマンドは、何に依存するかについて man ページに記載してある他に、\fB${misc:Depends}\fR と呼ばれる変数を、自動的に生成した依存情報と置き換えます。もし \&\fIdebian/control\fR にこの変数を指定すれば、debhelper は必要とする依存関係を自動的に展開するようになります。 .PP この変数は、\fIdh_makeshlibs\fR\|(1) により生成された標準の \fB${shlibs:Depends}\fR 変数とはまったく関連を持ちません。また、\fIdh_perl\fR\|(1) により生成された \fB${perl:Depends}\fR 変数も同様です。debhelper コマンドの推測が実状に合わない場合は、これらを使わないようにすることも可能です。 .SS "パッケージビルドディレクトリ" .IX Subsection "パッケージビルドディレクトリ" デフォルトでは、すべての debhelper プログラムはパッケージに含めるファイル群をまとめる一時ディレクトリとして debian/\fIpackage\fR ディレクトリを使用します。 .PP 時折、別の一時ディレクトリを利用したくなる場合があるでしょう。この場合は、\fB\-P\fR フラグを利用してください。例えば、"\fBdh_installdocs \-Pdebian/tmp\fR" では \fBdebian/tmp\fR を一時ディレクトリとして利用できます。ただし、\fB\-P\fR を使うと、debhelper プログラムは一度に 1 つのパッケージの処理しかできません。その為、複数のバイナリパッケージを生成するような場合、どのバイナリパッケージに対して debhelper が作用するかを指定するために \fB\-p\fR フラグを併用する必要があります。 .SS "udeb パッケージについて" .IX Subsection "udeb パッケージについて" debhelper は udeb もサポートしています。debhelper で udeb パッケージを作成するには、"\fBPackage-Type: udeb\fR" を \fIdebian/control\fR のパッケージ定義に加えてください。debhelper は udeb ファイルを debian-installer ポリシーにあわせてビルドします。これは、パッケージの拡張子が \fI.udeb\fR となるファイルで、いかなるドキュメントや、\fIpreinst\fR, \fIpostrm\fR, \fIprerm\fR, \fIconfig\fR スクリプト等も省いたものです。 .SH "環境変数" .IX Header "環境変数" 以下の環境変数は debhelper の振る舞いに影響を与えることができます。正しく動作するためには、(単なる \fIMakefile\fR 変数ではなく) 実際の環境変数である必要があることに注意するのが重要です。これらを正しく \fIdebian/rules\fR で指定するには、必ず "\fBexport\fR\*(L" してください。例えば \*(R"\fBexport \s-1DH_VERBOSE\s0\fR" などとします。 .IP "\fB\s-1DH_VERBOSE\s0\fR" 4 .IX Item "DH_VERBOSE" \&\fB1\fR を指定すると冗長出力モードになります。debhelper は動作する全てのコマンドについて出力を行うようになります。また、autoconf のようなビルドシステムについても冗長出力されたビルドログを有効にします。 .IP "\fB\s-1DH_QUIET\s0\fR" 4 .IX Item "DH_QUIET" quiet モードを有効にするには \fB1\fR を指定して下さい。debhelperは upstream のビルドシステムの呼び出しコマンドや、dh がどのサブコマンドが呼び出されたのかも出力しなくなり、upstream のビルドシステムによってはさらに静かになります。これは重要なメッセージに注目するのが簡単になりますが、buildd のログとしては出力は極めて使い物にならなくなります。DH_VERBOSE が同時にセットされていると無視されます。 .IP "\fB\s-1DH_COMPAT\s0\fR" 4 .IX Item "DH_COMPAT" この環境変数は、debhelper をどの互換性レベルで実行するかを一時的に指定するものです。こちらを指定すると \fIdebian/compat\fR の値を上書きします。 .IP "\fB\s-1DH_NO_ACT\s0\fR" 4 .IX Item "DH_NO_ACT" \&\fB1\fR に設定すると、何もしない (no-act) モードになります。 .IP "\fB\s-1DH_OPTIONS\s0\fR" 4 .IX Item "DH_OPTIONS" この環境変数に指定したものは、すべての debhelper コマンドの末尾に指定されるようになります。 .Sp \&\fIdh\fR\|(1) を使えば、続いて呼び出される debhelper コマンドに指定したオプションを渡すことができます。大抵の場合、こちらの方が \&\s-1DH_OPTIONS\s0 を使うよりも良い方法です。 .IP "\fB\s-1DH_ALWAYS_EXCLUDE\s0\fR" 4 .IX Item "DH_ALWAYS_EXCLUDE" こちらが設定されていると、\fB\-X\fR オプションをサポートするすべてのコマンドに対し、\fB\-X\fR オプションの値として環境変数の値を指定します。さらに、\fBdh_builddeb\fR コマンドはビルドツリーの元で環境変数の値に基づくパターンにマッチするもの全部を \fBrm \-rf\fR するようになります。 .Sp これは \s-1CVS\s0 ソースツリーからパッケージビルドをする場合に便利な場合があります。例えば、\fBDH_ALWAYS_EXCLUDE=CVS\fR を指定すれば、CVS ディレクトリがビルドの際に検索されるのを防ぐことができます。あるいは、ソースの tarball にすでに \s-1CVS\s0 ディレクトリが (愚かにも) 含まれている場合、\fIdebian/rules\fR で \fBDH_ALWAYS_EXCLUDE=CVS\fR 環境変数を export すれば、どこでパッケージをビルドしようとも効果を発揮するようになります。 .Sp 除外したいものを複数指定したい場合は、\fBDH_ALWAYS_EXCLUDE=CVS:.svn\fR のようにコロンで区切ってください。 .IP "\fB\s-1DH_EXTRA_ADDONS\s0\fR" 4 .IX Item "DH_EXTRA_ADDONS" If set, this adds the specified dh addons to be run in the appropriate places in the sequence of commands. This is equivalent to specifying the addon to run with the \-\-with flag in the debian/rules file. Any \-\-without calls specifying an addon in this environment variable will not be run. .Sp This is intended to be used by downstreams or specific local configurations that require a debhelper addon to be run during multiple builds without having to patch a large number of rules file. If at all possible, this should be avoided in favor of a \-\-with flag in the rules file. .SH "参照" .IX Header "参照" .IP "\fI/usr/share/doc/debhelper/examples/\fR" 4 .IX Item "/usr/share/doc/debhelper/examples/" debhelper を使うときの \fIdebian/rules\fR ファイルの例が格納されています。 .IP "" 4 .IX Item "" Debhelper の Web サイトです。 .SH "作者" .IX Header "作者" Joey Hess