次のいずれかの方法で、このスクリプトを準備して実行します。
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
|
このメッセージは無害なので、無視しても問題ありません。
フレームワークパッケージとデータサービスパッケージの両方用にスクリプトを実行したあと、ノードをクラスタモードで起動します。