OCTAVE_VERSION= 2.0.13 PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}
第13章 pkg-* ファイル
This translation may be out of date. To help with the translations please access the FreeBSD translations instance.
目次
pkg-* ファイルには、 まだ取り上げていない何かと重宝なトリックがいくつかあります。
13.1. pkg-message
もしインストールする人にメッセージを表示する必要がある場合には、 そのメッセージを pkg-message に置くことができます。 この機能は pkg_add(1) の後の追加のインストール手続きを表示するときなどに重宝します。
pkg-message ファイルは pkg-plist に加える必要はありません。 また、もしユーザが package ではなく port を使用している場合には自動的には表示されませんので、 明示的に |
13.2. pkg-install
バイナリパッケージが pkg_add(1) でインストールされるときに実行する必要のあるコマンドがあれば、 pkg-install スクリプトを使って実行することができます。 このスクリプトは自動的に package に加えられ、 pkg_add(1) によって 2 回実行されます。 1 回目は ${SH} pkg-install ${PKGNAME} PRE-INSTALL
として、2 回目には ${SH} pkg-install ${PKGNAME} POST-INSTALL
として実行されます。 どちらのモードで実行されているかは $2
を調べることによってわかります。 環境変数 PKG_PREFIX
には package がインストールされるディレクトリが設定されます。 詳細は pkg_add(1) を見てください。
port を |
13.3. pkg-deinstall
このスクリプトは package が削除される際に実行されます。
このスクリプトは、pkg_delete(1) から 2 回実行されます。1 回目は ${SH} pkg-install ${PKGNAME} DEINSTALL
と、2 回目は ${SH} pkg-install ${PKGNAME} POST-DEINSTALL
という形で実行されます。
13.4. pkg-req
(訳注: 実行されるマシンの状態に応じて) その port をインストールするべきか、そうでないかを判断する必要があるときには、 "要件 (requirements)" スクリプト pkg-req を作ることができます。 インストールや削除を実行すべきかどうか判断するために、 このスクリプトがインストールや削除を実行する際に自動的に実行されます。
このスクリプトはインストール時には pkg_add(1) により pkg-req ${PKGNAME} INSTALL
として実行され、 削除時には pkg_delete(1) により pkg-req ${PKGNAME} DEINSTALL
として 実行されます。
13.5. make の変数にあわせた pkg-plist の変更
いくつかの port、特に p5-
ports などは、configure のオプション (あるいは、p5-
の場合は perl
のバージョン) によって pkg-plist を変える必要があります。 これを容易に実現するために pkg-plist 中の %%OSREL%%
, %%PERL_VER%%
, %%PERL_VERSION%%
は適切に置き換えられるようになっています。 %%OSREL%%
の値はオペレーティングシステムの数字で表されたリビジョンです (たとえば 4.9
)。 %%PERL_VERSION%%
は perl
のバージョン番号全体 (たとえば 5.00502
) で、%%PERL_VER%%
は perl
のバージョン番号からパッチレベルを引いたものです (たとえば 5.005
)。
他の置き換えが必要であれば、PLIST_SUB
変数に VAR=VALUE
という形式のペアのリストを設定することによって、 pkg-plist 中の %%VAR%%
は VALUE に置き換えられます。 たとえばバージョンに固有のたくさんのファイルをインストールする場合には、 Makefile に
と書いて、PLIST 中のバージョン番号が表われるすべてのところに、 %%OCTAVE_VERSION%%
と書きます。 このようにしておけば、port をアップグレードするときに、 何十行 (時として、何百行) も pkg-plist を書き替えないですみます。
この書き換えは (マニュアルの追加も) pre-install
と do-install
ターゲットの間に pkg-plist
を読み TMPPLIST
(デフォルトは WRKDIR/.PLIST.mktmp) に書き込むことによって行なわれます。 もし、あなたの port が PLIST
を実行時に生成するのであれば、 pre-install
の間かその前に行なうようにしてください。 また、書きかえられたあとのファイルを編集する必要がある場合には、 post-install
で TMPPLIST
を書きかえてください。
13.6. pkg-* ファイルの名前変更
pkg-* ファイルの名前はすべて変数を使用して定義されていますので、 必要であれば Makefile 中で変更可能です。 いくつかの ports で一つの pkg-* ファイルを共有する場合や、 上記のファイルに書き込みをしなければならないときなど特に便利です (pkg-* サブディレクトリに直接書き込むのが良くない理由については WRKDIR
以外への書きこみ を参照してください)。
以下に変数名と そのデフォルト値のリストを示します。 (PKGDIR
のデフォルト値は ${MASTERDIR}
になっています。)
変数名 | デフォルト値 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
PKG_ARGS
を上書きせずにこれらの変数を変更するようにしてください。 PKG_ARGS
を変更すると、これらのファイルは port から正しく /var/db/pkg にインストールされなくなります。
最終更新日: 2024年3月9日 by Danilo G. Baio