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

印刷ビューの終了

更新: 2014 年 7 月
 
 

別のパッケージでも配布されるファイルの配布

IPS パッケージを使用すると、別のパッケージによりすでに配布されているファイルのカスタマイズバージョンを提供できます。デフォルトでは、特定の場所にファイルを配布できるのは 1 つの IPS パッケージだけです。IPS パッケージを使用して、別の IPS パッケージにより配布されるファイルのカスタムバージョンを配布するには、file アクションで次の属性が設定されていることを確認します。

  • 置換対象ファイルで overlay=allow および preserve=true 属性が設定されています。

  • 置換ファイルで overlay=true 属性と preserve 属性 (任意の値) が設定されています。

ファイルアクションoverlay および preserve 属性の説明を参照してください。

overlay=allow 属性が設定されているバージョンは、overlay=true 属性が設定されているファイルのバージョンに置き換えられ、overlay=allow 属性が設定されているファイルのバージョンは /var/pkg/lost+found/ に保存されます。

たとえば、次の file アクションを含む isvapp というパッケージをインストールするとします。

file opt/isvapp/isvconf path=opt/isvapp/isvconf owner=root group=bin mode=0644 \
    overlay=allow preserve=true

このパッケージは次のファイルをインストールします。

-rw-r--r--   1 root     bin        11358 Apr 17 18:44 /opt/isvapp/isvconf

このファイルのサイト固有のバージョンをすべてのシステムに配置するとします。このファイルの新しいバージョンを配布するには、次の file アクションを含む isvconf という名前のパッケージを作成します。

file opt/isvapp/isvconf path=opt/isvapp/isvconf owner=root group=bin mode=0644 \
    overlay=true preserve=renameold

isvconf がインストールされると、次のファイルがシステムに配置されます。

$ ls -l /opt/isvapp/isvconf
-rw-r--r--   1 root     bin        72157 Apr 17 18:47 /opt/isvapp/isvconf
$ ls -l /var/pkg/lost+found/opt/isvapp
total 24
-rw-r--r--   1 root     bin        11358 Apr 17 18:44 isvconf-20140417T184756Z

同じパスのファイルを配布する別のパッケージ (この例では isvconf2) をインストールしようとすると、次の例外でインストールが失敗します。

Creating Plan (Checking for conflicting actions): -
pkg install: The following packages all deliver file actions to opt/isvapp/isvconf:

  pkg://site/isvconf2@1.0,5.11:20140417T190405Z
  pkg://site/isvapp@1.0,5.11:20140417T182316Z
  pkg://site/isvconf@1.0,5.11:20140417T185420Z

These packages may not be installed together. Any non-conflicting set may
be, or the packages must be corrected before they can be installed.

最初の置換ファイルを配布したパッケージの更新で、ファイルの新しいバージョンを配布できます。isvconf@2.0 がインストールされると、次のファイルがシステムに配置されます。

$ ls -l /opt/isvapp/isvconf*
-rw-r--r--   1 root     bin        64064 Apr 17 18:52 /opt/isvapp/isvconf
-rw-r--r--   1 root     bin        54365 Apr 17 18:47 /opt/isvapp/isvconf.old
$ ls -l /var/pkg/lost+found/opt/isvapp
total 24
-rw-r--r--   1 root     bin        11358 Apr 17 18:44 isvconf-20140417T184756Z

次の 2 つの条件の両方に該当するため、既存のファイルは isvconf.old に保存されました。

  • isvconf パッケージに preserve=renameold が指定されています。

  • このファイルは、isvconf@1.0 のインストール後、isvconf@2.0 のインストール前に編集されています。

lost+found 領域は変更されておらず、isvapp により配布された元のファイルが引き続きこの領域に含まれています。