次のいずれかの方法で、このスクリプトを準備して実行します。
Sun Cluster フレームワークパッケージ用の変数を設定し、スクリプトを実行します。次に、データサービスパッケージ用の PATHNAME 変数を変更し、スクリプトを再実行します。
フレームワークパッケージ用に設定された変数を持つスクリプトと、データサービスパッケージ用に設定された変数を持つスクリプトを作成します。次に、両方のスクリプトを実行します。
スーパーユーザーとしてログインします。
次の内容のスクリプトを作成します。
#!/bin/ksh typeset PLATFORM=${PLATFORM:-`uname -p`} typeset PATHNAME=${PATHNAME:-/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster/Solaris_10/Packages} typeset BASEDIR=${BASEDIR:-/} cd $PATHNAME for i in * do if pkginfo -R ${BASEDIR} $i >/dev/null 2>&1 then mkdir -p ${BASEDIR}/var/sadm/pkg/$i/save/pspool pkgadd -d . -R ${BASEDIR} -s ${BASEDIR}/var/sadm/pkg/$i/save/pspool $i fi done
変数 PLATFORM、PATHNAME、および BASEDIR を設定します。
これらの変数を環境変数として設定するか、または直接スクリプト内の値を変更します。
プラットフォームの名前です。たとえば、sparc や x86 です。デフォルトで、PLATFORM 変数は uname -p コマンドの出力に設定されます。
Sun Cluster フレームワークまたはデータサービスパッケージをインストールできるデバイスへのパスです。この値は、pkgadd コマンドの -d オプションに対応します。
たとえば、Sun Cluster フレームワークパッケージの場合、この値は次のような形式になります。
/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster/Solaris_10/Packages |
データサービスパッケージの場合、この値は次のような形式になります。
/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster_agents/Solaris_10/Packages |
ルートパスとして使用し、pkgadd コマンドの -R オプションに対応する、ディレクトリのフルパス名です。ライブアップグレードの場合は、この値を、scinstall コマンドの -R オプションで使用されるルートパスに設定します。デフォルトで、BASEDIR 変数は、ルート (/) ファイルシステムに設定されます。
Sun Cluster フレームワークパッケージ用に 1 回、データサービスパッケージ用に 1 回、スクリプトを実行します。
スクリプトの実行後、各パッケージのコマンドプロンプトに次のメッセージが表示されます。
Transferring pkgname package instance |
パッケージ用の pspool ディレクトリがすでに存在する場合、またはスクリプトが同じパッケージセット用に 2 回実行された場合、次のエラーがコマンドプロンプトに表示されます。
Transferring pkgname package instance pkgadd: ERROR: unable to complete package transfer - identical version of pkgname already exists on destination device |
このメッセージは無害なので、無視しても問題ありません。
フレームワークパッケージとデータサービスパッケージの両方用にスクリプトを実行したあと、ノードをクラスタモードで起動します。