Oracle® Solaris 11.2 での Image Packaging System を使用したソフトウェアのパッケージ化と配布

印刷ビューの終了

更新: 2014 年 7 月
 
 

ディレクトリの削除に伴うパッケージ解除されたファイルの移動

この例では、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 属性を使用する別の例を示します。