dpkg-buildpackages(1)

名前
dpkg-buildpackages - バイナリパッケージおよびソースパッケージのビルド

書式
dpkg-buildpackage [option...]

説明
dpkg-buildpackage は、Debian パッケージのビルドを自動化するプログラムである。これには以下のステップが含まれる:

1.  様々な環境変数 (環境変数 を参照のこと) を定義することで、ビルド環境を設定し、dpkg-source --before-build を呼び出す (-T もしくは --targetが指定されていない限り)。

2.  ビルドにおける依存関係が満たされているか、競合が発生していないかをチェックする (-d が指定されていない限り)。

3.  -t もしくは --target オプションにより、ビルドのターゲットが指定されている場合は、ターゲットを呼び出して、そこで実行を停止する。それ以外の場合は fakeroot debian/rules clean を呼び出し、ビルドツリーをクリアする (-nc が指定されていない限り)。

4.  dpkg-source -b を呼び出し、ソースパッケージを生成する (-b, -B, -A によってバイナリパッケージのみのビルドが指定されていない限り)。

5.  It calls debian/rules build-target followed by fakeroot debian/rules binary-target (unless a source-only build has been requested with -S). Note that build-target and binary-target are either build and binary (default case, or if -b is specified), or build-arch and binary-arch (if -B is specified), or build-indep and binary-indep (if -A is specified).

6.  gpg を呼び出し、.dsc ファイルに署名を行う (-us が指定されていない限り)。

7.  dpkg-genchanges を呼び出して、.changes ファイルを生成する。dpkg-buildpackage のオプションの多くが dpkg-genchanges に引き継がれる。

8.  gpg を呼び出し、.changes ファイルに署名を行う (-uc が指定されていない限り)。

9.  -tc が指定されていた場合、fakeroot debian/rules clean が再度呼び出される。最後に dpkg-source --after-build が呼び出される。

オプション

-b  バイナリパッケージのみのビルドを指定する。ソースファイルはビルドされず、配布もされない。dpkg-genchanges は省略される。

-B  アーキテクチャ依存のパッケージについて、バイナリパッケージのみのビルドを指定する。dpkg-genchanges は省略される。

-A  アーキテクチャ非依存のパッケージについて、バイナリパッケージのみのビルドを指定する。dpkg-genchanges は省略される。

-S  ソースパッケージのみのビルドを指定する。バイナリパッケージは作成されない。dpkg-genchanges は省略される。

-F  バイナリパッケージとソースパッケージの両方をビルドする、通常のフルビルドを指定する。これはビルドオプションを指定しなかった際のデフォルトの挙動である。

--target=target
--target target
-Ttarget
    ビルド環境の設定後に、debian/rules target を呼び出し、そこでパッケージのビルド処理を中止する。--as-root も設定されていた場合、コマンドは root として実行される (-r も参照のこと)。Debian policy によって、公式に root での実行が必須とされているターゲットについては、本オプションは不要である。

--as-root
    --target と併せて指定された場合のみ有効であり、target の実行に root 権限が必要であることを指定する。

-si
-sa
-sd
-vversion
-Cchanges-description
-mmaintainer-address
-emaintainer-address
    dpkg-genchanges にそのまま引き渡される。そちらのマニュアルページを参照のこと。

-aarchitecture
    ビルド対象となる Debian アーキテクチャを指定する。ビルドを実行するマシンのアーキテクチャは自動的に判別され、ホストマシンのデフォルト値となる。

-tgnu-system-type
    ビルド対象となる GNU システムタイプを指定する。これは -a オプションの代わりとしてターゲットの Debian アーキテクチャに対応するデフォルトの GNU システムタイプを上書きするために用いられる。

-jjobs
    同時に実行させることが可能なジョブの数であり、make(1) の同名のオプションと同じ意味を持つ。MAKEFLAGS 環境変数に追加され、後に続くすべての make の呼び出しに、このオプションが引き継がれる。このオプションは、debian/rules ファイルがこの情報を使用できるように DEB_BUILD_OPTIONS 環境変数に対しても parallel=jobs を追加する。DEB_BUILD_OPTIONS 環境変数に parallel=jobs が設定されていた場合、-j オプションの値は上書きされる。

-D  ビルドの依存関係と競合をチェックし、問題がある場合は処理を中断させる。これはデフォルトの挙動である。

-d  ビルドの依存関係と競合をチェックしない。

-nc ソースツリーを消去しない (-B, -A, -S いずれもが指定されない場合は、-b が指定されたと見なされる)。

-tc パッケージのビルド後にソースツリーを消去する (gain-root-command debian/rules clean が用いられる)。

-rgain-root-command
    dpkg-buildpackage がビルド処理の一部を root 権限で実行する必要がある場合、このオプションが指定されていれば、実行するコマンドの前に gain-root-command が付けられる。このオプションが指定されていなかった場合は、fakeroot が存在していれば、それがデフォルトで用いられる。gain-root-command はPATH 上のプログラム名である必要があり、実際に実行したいコマンドに続き、そのコマンドの引数を引数として指定する。gain-root-command には (スペースで区切られた) パラメータを含めてもよいが、シェルのメタキャラクタを含めることはできない。gain-root-command は通常 fakeroot, sudo, super, really などである。su は、実行したいコマンドに引数を個々に引き渡すのではなく、-c を用いてユーザのシェルを起動するだけであるため適切ではない。

-Rrules-file
    Debian パッケージのビルドの際は、通常 debian/rules コマンドが幾つかの標準的な引数を付けて実行される。このオプションにより、パッケージのビルドの際に別のプログラムを使用することが可能となる (スペースで区切られた引数を含めることも可能である)。標準のルールファイルを別の make プログラムで実行する (例えば rules-file の代わりに usr/local/bin/make -f debian/rules を使用する) ために使用することもできる。

-psign-command
    When dpkg-buildpackage needs to execute GPG to sign a source control (.dsc) file or a .changes file it will run sign-command (searching the PATH if necessary) instead of gpg. sign-command will get all the arguments that gpg would have gotten. sign-command should not contain spaces or any other shell metacharacters.

-kkey-id
    パッケージに署名する際に使用する鍵のIDを指定する。

-us ソースパッケージに署名しない。

-uc .changes ファイルに署名しない。

-i[regexp]
-I[pattern]
-s[nsAkurKUR]
-z, -Z
    dpkg-source にそのまま引き渡される。そちらのマニュアルページを参照のこと。

--source-option=opt
    dpkg-source に opt オプションを引き渡す。

--changes-option=opt
    dpkg-genchanges に opt オプションを引き渡す。

--admindir=dir
--admindir dir
    dpkg データベースの位置を変更する。デフォルトの位置は /var/lib/dpkg である。

-h, --help
    利用方法を表示して終了する。

--version
    バージョン情報を表示して終了する。

環境変数
dpkg-buildpackage が幾つかの変数をエクスポートしていたとしても、debian/rules はその存在に依存してはならない。代わりに必要な値を取得するためのインタフェースを使用すること。

  dpkg-architecture によって設定される変数
dpkg-architecture は -a および -t を引数として呼び出される。このコマンドの -s オプションによって設定された変数はビルド環境にマージされる。

  コンパイラフラグのエクスポート停止
1.14.17 から 1.16.1 の間では、dpkg-buildpackage が dpkg-buildflags によって返却される値としてコンパイラフラグ (CFLAGS, CXXFLAGS, FFLAGS, CPPFLAGS, LDFLAGS) をエクスポートしていた。現在のバージョンでは、行われていない。

後方互換性
dpkg-buildpackage is using the build-arch and build-indep targets since version 1.16.2. Those targets are thus mandatory. But to avoid breakages of existing packages, and ease the transition, it will fallback to using the build target if make -f debian/rules -qn build-target returns 2 as exit code.

バグ
gain-root-command および sign-command の先頭の引数として、スペースやシェルのメタキャラクタを指定できるようにすべきである。

関連項目
dpkg-source(1), dpkg-architecture(1), dpkg-buildflags(1), dpkg-genchanges(1), fakeroot(1), gpg(1).

翻訳者
高橋 基信 <monyo@monyo.com>. 喜瀬 浩 <kise@fuyuneko.jp>. 関戸 幸一 <sekido@mbox.kyoto-inet.or.jp>. 鍋谷 栄展 <nabe@debian.or.jp>. 倉澤 望 <nabetaro@debian.or.jp>. 石川 睦 <ishikawa@linux.or.jp>. 鵜飼 文敏 <ukai@debian.or.jp>. 中野 武雄 <nakano@apm.seikei.ac.jp>.

翻訳校正
Debian JP Documentation ML <debian-doc@debian.or.jp>.