finish スクリプトを作成すると、Solaris ソフトウェアをシステムにインストールした後に、パッケージやパッチを自動的に追加できます。finish スクリプトを使用してパッケージを追加すると時間を節約できるだけでなく、サイトのさまざまなシステムにパッケージおよびパッチをインストールする上での整合性を維持できます。
pkgadd(1M) コマンドや patchadd(1M) コマンドを finish スクリプトで使用するときは、-R オプションを使用して、/a をルートパスとして指定する必要があります。
例 24–2 はパッケージを追加する finish スクリプトの例を示します。
#!/bin/sh
BASE=/a
MNT=/a/mnt
ADMIN_FILE=/a/tmp/admin
mkdir ${MNT}
mount -f nfs sherlock:/export/package ${MNT}1
cat>${ADMIN_FILE} <<DONT_ASK2
mail=root
instance=overwrite
partial=nocheck
runlevel=nocheck
idepend=nocheck
rdepend=nocheck
space=ask
setuid=nocheck
conflict=nocheck
action=nocheck
basedir=default
DONT_ASK
/usr/sbin/pkgadd -a ${ADMIN_FILE} -d ${MNT} -R ${BASE} SUNWxyz3
umount ${MNT}
rmdir ${MNT}
|
インストールするパッケージを含むサーバー上にディレクトリをマウントします。
一時的なパッケージ管理ファイル admin を作成し、パッケージのインストール時に pkgadd(1M) コマンドがチェックも質問の表示も行わないようにします。この一時的なパッケージ管理ファイルは、パッケージの追加時に自動インストールを実施するために使用してください。
-a オプション (パッケージ管理ファイルを指定) と -R オプション (ルートパスを指定) を使用してパッケージを追加します。
以前は finish スクリプト環境では、pkgadd コマンドや patchadd コマンドとともに chroot(1M) コマンドが使用されていました。しかし、一部のパッケージやパッチには -R オプションが正しく動作しないものがあります。このような状況では、chroot コマンドを実行する前に /a ルートパスにダミーの /etc/mnttab ファイルを作成する必要があります。
/etc/mnttab ダミーファイルを作成するには、次の行を finish スクリプトに追加します。
cp /etc/mnttab /a/etc/mnttab