手続きスクリプトは、パッケージのインストールまたは削除に対する特定の段階で実行する一連の命令を提供します。4 つの手続きスクリプトには、命令をいつ実行するかに応じて、定義済みの名前のいずれかを設定する必要があります。スクリプトは、引数なしで実行されます。
クラスのインストールが開始する前に実行します。このスクリプトではファイルをインストールするべきではありません。
すべてのボリュームがインストールされたあとで実行します。
クラスの削除が開始する前に実行します。このスクリプトではファイルを削除するべきではありません。
すべてのクラスが削除されたあとで実行します。
手続きスクリプトは、uid=root および gid=other として実行されます。
各スクリプトは、パッケージ内のボリュームごとに 1 回実行されるので、1 回を超えて実行できるようにしてください。つまり、あるスクリプトの実行結果は、同じ入力であれば何度実行しても常に同じであることを意味します。
pkgmap ファイル内にないパッケージオブジェクトをインストールする各手続きスクリプトは、installf コマンドを使用して、パス名を追加または変更することをパッケージデータベースに通知する必要があります。すべての追加または変更が完了したあとでは、-f オプションを指定してこのコマンドを呼び出すようにしてください。この方法でパッケージオブジェクトをインストールできるスクリプトは、postinstall および postremove スクリプトのみです。詳細は、installf(1M) のマニュアルページおよび第 5 章パッケージ作成のケーススタディーを参照してください。
手続きスクリプトの実行中は、管理者と対話することはできません。管理者との対話はすべて、request スクリプトに制限されます。
pkgmap ファイルからインストールされたものではないファイルを削除する各手続きスクリプトは、removef コマンドを使用して、パス名を削除することをパッケージデータベースに通知する必要があります。削除が完了したあとでは、-f オプションを指定してこのコマンドを呼び出すようにしてください。詳細および例については、removef(1M) のマニュアルページおよび第 5 章パッケージ作成のケーススタディーを参照してください。
手続きスクリプトは pkgmap ファイルにリストされているパス名と自動的には関連付けられないので、installf および removef コマンドを使用する必要があります。