この例では、IPS を使用して、パッケージ解除された内容を別のパッケージ化されたディレクトリに回収する方法を示します。
この例では、パッケージ myapp@1.0 がディレクトリ /opt/myapp/logfiles をインストールします。myapp アプリケーションはそのディレクトリにログファイルを書き込みます。
myapp@2.0 パッケージは /opt/myapp/history ディレクトリを配布しますが、/opt/myapp/logfiles ディレクトリは配布しません。インストールされている myapp@1.0 パッケージを myapp@2.0 に更新するユーザーの場合、/opt/myapp/logfiles ディレクトリが存在しなくなります。このようなユーザーに対しては、/opt/myapp/logfiles の内容が /var/pkg/lost+found/opt/myapp/logfiles に保存されたことを通知するメッセージが、pkg update 出力の終わりに表示されます。
myapp パッケージの更新時に、IPS を使用して /opt/myapp/logfiles から /opt/myapp/history にファイルの内容を移動するには、/opt/myapp/history ディレクトリに salvage-from 属性を使用します。pkgmogrify 入力ファイルには次のエントリが必要です。
<transform dir path=opt/myapp/history -> \ add salvage-from /opt/myapp/logfiles>
pkgmogrify の実行後には、このディレクトリに対するパッケージマニフェストアクションは次のようになります。
dir path=opt/myapp/history owner=root group=bin mode=0755 \ salvage-from=/opt/myapp/logfiles
ユーザーが pkg update myapp を実行したあとでは、/opt/myapp/logfiles ディレクトリが削除され、新しい /opt/myapp/history ディレクトリがインストールされ、/opt/myapp/logfiles のファイル内容が /opt/myapp/history に格納されます。
非共有の内容を共有領域に移行する方法に、salvage-from 属性を使用する別の例を示します。