Solaris 8 のインストール (上級編)

finish スクリプトによるパッケージとパッチの追加

finish スクリプトを作成すると、Solaris をシステムにインストールした後に、パッケージやパッチを自動的に追加できます。これは時間を節約するだけでなく、どのパッケージやパッチがユーザーのサイトにあるさまざまなシステムにインストールされているかについての整合性を確保できます。

pkgadd(1M) コマンドや patchadd(1M) コマンドを finish スクリプトで使用するときは、-R オプションを使用して、/a をルートパスとして指定しなければなりません。

例 7-1 はパッケージを追加する finish スクリプトの例を示します。


例 7-1 finish スクリプトでパッケージを追加する

	#!/bin/sh
 
  BASE=/a
  MNT=/a/mnt
  ADMIN_FILE=/a/tmp/admin
 
  mkdir ${MNT}
1 mount -f nfs sherlock:/export/package ${MNT}
2 cat >${ADMIN_FILE} <<DONT_ASK
  mail=root
  instance=overwrite
  partial=nocheck
  runlevel=nocheck
  idepend=nocheck
  rdepend=nocheck
  space=ask
  setuid=nocheck
  conflict=nocheck
  action=nocheck
  basedir=default
  DONT_ASK
 
3 /usr/sbin/pkgadd -a ${ADMIN_FILE} -d ${MNT} -R ${BASE} SUNWxyz
 
  umount ${MNT}
  rmdir ${MNT}

1. インストールするパッケージを含むサーバー上にディレクトリをマウントします。

2. 一時的なパッケージ管理ファイル admin を作成し、パッケージのインストール時に pkgadd(1M) コマンドがチェックを行わない (および質問を表示しない) ようにします。これにより、パッケージ追加時に自動インストールを実行できます。

3. -a オプション (パッケージ管理ファイルを指定) と -R オプション (ルートパスを指定) を使用してパッケージを追加します。


注 -

以前は finish スクリプト環境では、pkgadd コマンドや patchadd コマンドとともに chroot(1M) コマンドが使用されていました。これは推奨する方法ではありませんが、一部のパッケージやパッチには、-R オプションが正しく動作しないものもあります。このような状況では、chroot コマンドを使用する前に、仮の /etc/mnttab ファイルを /a ルートパスに作成しなければなりません。

/etc/mnttab ダミーファイルを作成するには、次の行を finish スクリプトに追加します。

cp /etc/mnttab /a/etc/mnttab