Provided by: dpkg-dev_1.17.5ubuntu5.8_all
名前
dpkg-buildpackage - バイナリパッケージおよびソースパッケージのビルド
書式
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. fakeroot debian/rules binary-target に続き、debian/rules build-target を呼び出す (-S に よってソースパッケージのみのビルドが指定されていない限り)。build-target および binary-target は build および binary (デフォルト、もしくは -b が指定されていた場 合)、build-arch および binary-arch (-B が指定されていた場合)、build-indep および binary-indep (-A が指定されていた場合) のいずれかの値をとる。 6. It calls gpg2 or gpg to sign the .dsc file (if any, unless -us is specified or on UNRELEASED builds). 7. dpkg-genchanges を呼び出して、.changes ファイルを生成する。dpkg-buildpackage のオプショ ンの多くが dpkg-genchanges に引き継がれる。 8. It calls gpg2 or gpg to sign the .changes file (unless -uc is specified or on UNRELEASED builds). 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 システムタイプを上書き するために用いられる。 -Pprofile[,...] Specify the profile(s) we build, as a comma-separated list, without the "profile." namespace prefix. The default behavior is to build for no specific profile. Also adds them (as a space separated list) to the DEB_BUILD_PROFILES environment variable which allows, for example, debian/rules files to use this information for conditional builds. -jjobs Number of jobs allowed to be run simultaneously, equivalent to the make(1) option of the same name. Will add itself to the MAKEFLAGS environment variable, which should cause all subsequent make invocations to inherit the option. Also adds parallel=jobs to the DEB_BUILD_OPTIONS environment variable which allows debian/rules files to use this information for their own purposes. The parallel=jobs in DEB_BUILD_OPTIONS environment variable will override the -j value if this option is given. -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 gpg2 or gpg. sign-command will get all the arguments that gpg2 or gpg would have gotten. sign-command should not contain spaces or any other shell metacharacters. -kkey-id パッケージに署名する際に使用する鍵のIDを指定する。 -us ソースパッケージに署名しない。 -uc .changes ファイルに署名しない。 --force-sign Force the signing of the resulting files (since dpkg 1.17.0), regardless of -us or -uc or other internal heuristics. -i[regex] -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 である。 -?, --help 利用方法を表示して終了する。 --version バージョン情報を表示して終了する。
環境変数
DEB_SIGN_KEYID If set, it will be used to sign the .changes and .dsc files. Overridden by the -k option. DEB_BUILD_PROFILES If set, it will be used as the active build profile(s) for the package being built. It is a space separated list of profile names, without the "profile." namespace prefix. Overridden by the -P option. Reliance on exported environment flags dpkg-buildpackage が幾つかの変数をエクスポートしていたとしても、debian/rules はその存在に 依存してはならない。代わりに必要な値を取得するためのインタフェースを使用すること。 dpkg-architecture によって設定される変数 dpkg-architecture は -a および -t を引数として呼び出される。このコマンドの -s オプションに よって設定された変数はビルド環境にマージされる。
参考
コンパイラフラグのエクスポート停止 Between dpkg 1.14.17 and 1.16.1, dpkg-buildpackage exported compiler flags (CFLAGS, CXXFLAGS, FFLAGS, CPPFLAGS and LDFLAGS) with values as returned by dpkg-buildflags. This is no longer the case. Default build targets dpkg-buildpackage is using the build-arch and build-indep targets since dpkg 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), gpg2(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>.