Solaris 9 インストールガイド

付録 C その他の SVR4 パッケージ要件に関するリファレンス情報

この付録は、カスタム JumpStart プログラムや Solaris Live Upgrade を使ってパッケージ (特にサードパーティのパッケージ) のインストールや削除を行うシステム管理者のためのものです。パッケージが SvR4 パッケージ要件に準拠していれば、カスタム JumpStart インストールを非対話的に行うことができます。さらに、動作中の現在のシステムは変更されないため、Solaris Live Upgrade を使ってアップグレードを行うことができます。

パッケージ化要件の概要

以下のドキュメントは、パッケージ化要件の背景を理解する助けになります。

表 C–1 に、Solaris Live Upgrade とカスタム JumpStart プログラムに適用される情報の参照先を示します。

表 C–1 要件情報

インストール方法 

要件に関する参照先 

Solaris Live Upgrade 

Custom JumpStart プログラム 

カスタム JumpStart プログラムと Solaris Live Upgrade の非アクティブブート環境要件

非アクティブブート環境は、現在稼働中のシステムではなく、オペレーティング環境のコピーです。Live Upgrade やカスタム JumpStart プログラムで使用するパッケージは、次の要件に準拠していなければなりません。

以下のリストに、非アクティブブート環境に適合するための要件を示します。

$PKG_INSTALL_ROOT$BASEDIR の相違点の概要

$PKG_INSTALL_ROOT は、パッケージを追加しようとするマシンのルート (/) ファイルシステムの場所です。この値は、pkgadd コマンドの -R 引数の後にセットされます。たとえば、次のコマンドを実行すると、パッケージのインストール時に $PKG_INSTALL_ROOT の値は /a になります。


# pkgadd -R /a SUNWvxvm

$BASEDIR は、再配置可能なパッケージオブジェクトがインストールされる再配置可能なベースディレクトリを指しています。 ここにインストールされるのは、再配置可能オブジェクトだけです。再配置可能でないオブジェクト (pkgmap ファイルに 絶対パスが指定されているオブジェクト) は、非アクティブブート環境の相対パスにインストールされます。$BASEDIR との相対パスにはインストールされません。再配置可能なオブジェクトがないパッケージは、絶対パッケージ (非再配置可能) と呼ばれます。その場合、$BASEDIR は未定義であるため、これをパッケージに添付されているスクリプトで使用することはできません。

たとえば、パッケージの pkgmap ファイルに次のエントリがあるとします。


1 f none sbin/ls 0555 root sys 3541 12322 1002918510
1 f none /sbin/ls2 0555 root sys 3541 12322 2342423332

さらに、pkginfo ファイルには、 $BASEDIR が次のように指定されているとします。


BASEDIR=/opt

このパッケージを次のコマンドでインストールすると、 ls は、 /a/opt/sbin/ls としてインストールされますが、 ls2 は、 /a/sbin/ls2 としてインストールされます。


# pkgadd -R /a SUNWtest

Solaris Live Upgrade 非アクティブブート環境の要件

Solaris Live Upgrade を使用したり、新しいブート環境を作成する場合には、次の項目に従って問題の発生を防止してください。

ファイルの作成や変更、削除に対する要件はさまざまなコマンドで検証できます。たとえば、パッケージが正しく動作するかどうかを dircmpfssnap コマンドを使って検証できます。 さらに、ps コマンドでは、パッケージによりデーモンの開始や停止が行われていないことを確認することによってデーモンに対する要件準拠を確認できます。trusspkgadd -v、および pkgrm コマンドで、パッケージインストールの実行要件に準拠しているかどうかを確認できます。ただし、これが常に機能するとはかぎりません。次の例では、truss コマンドは、読み取り専用ディレクトリおよび $TEMPDIR へのアクセス情報をすべて除外し、読取専用でないディレクトリまたは指定された非アクティブブート環境以外のディレクトリへのアクセス情報のみを表示します。


# TEMPDIR=/a; export TEMPDIR
# truss -t open /usr/sbin/pkgadd -R ${TEMPDIR} SUNWvxvm \
2>&1> /dev/null | grep -v O_RDONLY | grep -v \
'open("'${TEMPDIR}

このセクションで示したコマンドの詳細は、dircmp(1)fssnap(1M) ps(1)truss(1)pkgadd(1M)pkgchk(1M)、またはpkgrm(1M) のマニュアルページを参照してください。

カスタム JumpStart プログラムのアップグレード要件

パッケージがカスタム JumpStart プログラムの要件に準拠していれば、次に示す従来の Solaris インストールユーティリティを使ってパッケージの追加や削除を行うことができます。

さらに、カスタム JumpStart プログラムの要件に準拠したパッケージは Solaris アップグレードに入れることができます。カスタム JumpStart プログラムに準拠するには、パッケージはカスタム JumpStart プログラムと Solaris Live Upgrade の非アクティブブート環境要件に説明されている非アクティブブート環境要件にも準拠する必要があります。

処理の途中でユーザー入力を求められないほうが、カスタム JumpStart プログラムを効果的に使用することができます。ユーザーの入力作業をなくすためには、 pkgadd コマンドの -a オプションで使用する新しい管理ファイルを設定する必要があります。-a オプションは、デフォルトの管理ファイルの代わりにユーザー定義の管理ファイルを使用することを意味します。デフォルトのファイルを使用すると、情報の入力が必要になることがあります。管理ファイルを作成すれば、pkgadd でこのようなチェックを省略し、ユーザーの確認なしでパッケージをインストールすることができます。詳細は、マニュアルページ admin(4) または pkgadd(1M) を参照してください。

次の例で、pkgadd 管理ファイルの使い方を説明します。

次に示すのは、pkgadd ユーティリティでユーザーの入力をほとんど必要としないインストール管理ファイルの例です。パッケージがシステムで利用可能な容量を超えた容量を必要としない限り、 pkgadd ユーティリティはこのファイルを使用して、ユーザーに情報の入力を求めることなくインストールを実行します。

mail=
instance=overwrite
partial=nocheck
runlevel=nocheck
idepend=nocheck
space=ask
setuid=nocheck
confiict=nocheck
action=nocheck
basedir=default