名前
- Provided by: dpkg-dev (Version: 1.17.5ubuntu5.8)
- Source: dpkg
- Report a bug
substvars
dpkg-source, dpkg-gencontrol, dpkg-genchanges が制御情報を (dpkg-source 用のソース制御ファイル .dsc 、dpkg-gencontrol や dpkg-genchanges の標準出力に) 書き出す際に、変数の置換が行われる。
変数が置換される箇所は ${変数名} という形式になっている。変数名には英数字、ハイフン、コロンを使用できるが、先頭文字は英数字である必要がある。変数の置換は、置換が不要になるまで再帰的に何度でも行われる。これは、置換後のフィールドの全文に対して、再度置換対象がないかの確認が行われることを意味する。
置換がすべて完了した後で、文字列 ${} (これは置換対象ではない) が $ 記号に置き換えられる。
変数の置換は、すべての制御フィールドに対して行われるが、フィールドによっては変数が置換される前のビルド段階で用いられるものがある。そのため、Package, Source, Architecture フィールドで変数を用いてはならない。
変数の置換は、各フィールドが解析され、切り出された後の内容に対して行われる。そのため、置換した結果が複数行にわたる場合も、改行の後にスペースを含めておく必要はない。これは、置換された変数の内容がフィールドに展開される際に暗黙的に行われる。例えば "foo is bar.${Newline}foo is great." という内容が ${Description} という変数に格納されており、フィールドの内容が以下のようになっていた場合、
Description: foo application
${Description}
.
More text.
置換後の結果は次のようになる:
Description: foo application
foo is bar.
foo is great.
.
More text.
共通オプション -V により変数を設定することが可能である。debian/substvars ファイル (もしくは -T オプションで指定したファイル中) で設定してもよい。このファイルには name=value 形式の行から構成する。行末の空白文字、空白行、# 記号から始まる行 (コメント行) は無視される。
その他に、以下の標準変数を使用することができる:
変数が定義されていないにもかかわらず参照されている場合は、値として空文字列が想定されるとともに、警告が生成される。
dpkg(1), dpkg-genchanges(1), dpkg-gencontrol(1), dpkg-shlibdeps(1), dpkg-source(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>.