JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 10 8/11 インストールガイド (Solaris Live Upgrade とアップグレードの計画)     Oracle Solaris 10 8/11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I Solaris Live Upgrade によるアップグレード

1.  Solaris インストールの計画についての参照先

2.  Solaris Live Upgrade (概要)

3.  Solaris Live Upgrade (計画)

4.  Solaris Live Upgrade によるブート環境の作成 (作業)

5.  Solaris Live Upgrade によるアップグレード (作業)

6.  障害回復: 元のブート環境へのフォールバック (作業)

7.  Solaris Live Upgrade ブート環境の管理 (作業)

8.  非大域ゾーンがインストールされているシステムにおける Oracle Solaris OS のアップグレード

9.  Solaris Live Upgrade (例)

10.  Solaris Live Upgrade (コマンドリファレンス)

パート II Solaris Live Upgrade を使った ZFS ルートプールのアップグレードと ZFS ルートプールへの移行

11.  Solaris Live Upgrade と ZFS (概要)

12.  ZFS の Solaris Live Upgrade (計画)

13.  ZFS ルートプールのブート環境の作成

14.  非大域ゾーンがインストールされている ZFS の Solaris Live Upgrade

パート III 付録

A.  問題発生時の解決方法 (作業)

B.  その他の SVR4 パッケージ要件 (リファレンス)

稼働中の OS に対する変更の防止

絶対パスの使用

pkgadd -R コマンドの使用

$PKG_INSTALL_ROOT$BASEDIR の相違点の概要

スクリプト作成のガイドライン

ディスクレスクライアントの互換性維持

パッケージの検証

インストール中およびアップグレード中のユーザー操作の回避

ゾーンのパッケージパラメータの設定

背景情報

C.  アップグレード時のパッチアナライザの使用 (作業)

用語集

索引

稼働中の OS に対する変更の防止

この節で説明する要件に従えば、現在稼働中の OS は変更されません。

絶対パスの使用

オペレーティングシステムのインストールが成功するには、Solaris Live Upgrade の非アクティブブート環境などの代替ルート (/) ファイルシステムをパッケージが認識して、それに従う必要があります。

パッケージの pkgmap ファイル (パッケージマップ) には、絶対パスを指定できます。これらのパスが存在する場合、そのファイルは、pkgadd コマンドの -R オプションとの相対パスに書き込まれます。絶対パスと相対 (再配置可能) パスの両方を含むパッケージは、代替ルート (/) ファイルシステムにもインストールできます。絶対ファイルであれ再配置可能ファイルであれ、その前には $PKG_INSTALL_ROOT が付加されるため、pkgadd によるインストールでは、すべてのパスが正しく解釈されます。

pkgadd -R コマンドの使用

pkgadd -R オプションを使ってパッケージをインストールしたり、pkgrm -R オプションを使ってパッケージを削除する場合には、パッケージが、動作中のシステムを変更してはいけません。この機能は、カスタム JumpStart、Solaris Live Upgrade、非大域ゾーン、およびディスクレスクライアントで使用されます。

さらに、pkgadd -R オプションを使ってパッケージをインストールしたり、pkgrm -R オプションを使ってパッケージを削除する場合には、パッケージに同梱のスクリプトで、動作中のシステムを変更してはいけません。インストールスクリプトを作成する場合には、参照するディレクトリやファイルの前に $PKG_INSTALL_ROOT 変数を付加する必要があります。パッケージでは、書き込むすべてのディレクトリやファイルの前に $PKG_INSTALL_ROOT を付加する必要があります。さらに、パッケージでは、$PKG_INSTALL_ROOT 接頭辞を付加せずにディレクトリを削除すべきではありません。

表 B-1 に、スクリプト構文の例を示します。

表 B-1 インストールスクリプト構文の例

スクリプトタイプ
正しい構文
正しくない構文
Bourne シェル「if」ステートメントの一部
if [ -f ${PKG_INSTALL_ROOT}\
/etc/myproduct.conf ] ; then
if [ -f /etc/myproduct.conf ] ; \
 then
ファイルの削除
/bin/rm -f ${PKG_INSTALL_ROOT}\
/etc/myproduct.conf
/bin/rm -f /etc/myproduct.conf 
ファイルの変更
echo "test=no" > ${PKG_INSTALL_ROOT}\
/etc/myproduct.conf
echo "test=no" > \
/etc/myproduct.conf

$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

スクリプト作成のガイドライン

パッケージ処理のスクリプトを作成するときは、現在稼働中の OS への変更を防ぐために、OS に依存しないようにしてください。スクリプトには、パッケージのインストールや削除の実行中に行うアクションを定義します。事前に決められたプロシージャー名で作成できるスクリプトが 4 つあります。 preinstallpostinstallpreremove、および postremove です。

表 B-2 スクリプト作成のガイドライン

ガイドライン
Solaris Live Upgrade への影響
非大域ゾーンへの影響
スクリプトは Bourne シェル (/bin/sh) で書き込む必要があります。pkgadd コマンドは、スクリプトの実行時にインタープリタとして Bourne シェルを使用します。
X
X
スクリプトはプロセスの開始や停止を行なったり、pstruss などのコマンドの出力に依存したりしてはいけません。ps や truss はオペレーティングシステムに依存し、稼働中のシステムに関する情報を報告します。
X
X
スクリプトでは、exprcpls などの標準的な UNIX コマンドや、シェルスクリプトの作成を容易にするそのほかのコマンドを自由に使用できます。
X
X
パッケージはサポートされているすべてのリリースで動作する必要があるため、スクリプトで呼び出すコマンドはこれらすべてのリリースで利用可能なものでなければなりません。したがって、Solaris 8 リリースのあとで追加または削除されたコマンドは使用できません。

特定のコマンドまたはオプションが Solaris 8、9、または 10 リリースでサポートされていることを確認するには、http://www.oracle.com/technetwork/indexes/documentation/index.html で該当するバージョンの Solaris Reference Manual AnswerBook を参照してください。

X

ディスクレスクライアントの互換性維持

パッケージでは、パッケージ自体が提供しているコマンドを実行してはいけません。これは、ディスクレスクライアントの互換性を維持するためであると同時に、まだインストールされていない共有ライブラリを必要とするコマンドの実行を避けるためです。

パッケージの検証

すべてのパッケージは pkgchk の検証にパスしなければなりません。パッケージを作成したらインストールする前に、次のコマンドでパッケージをチェックする必要があります。

# pkgchk -d dir_name pkg_name
dir_name
パッケージがあるディレクトリの名前を指定します。
pkg_name

パッケージの名前を指定します。

例 B-1 パッケージをテストする

パッケージを作成したら、pkgadd コマンドに -R dir_name オプションを指定して、これを代替ルート (/) ファイルシステムにインストールしてテストする必要があります。パッケージをインストールしたら、次のように、パッケージが正しいかどうかを pkgchk コマンドでチェックします。

# pkgadd -d . -R /a SUNWvxvm
# pkgchk -R /a SUNWvxvm

エラーが表示されないことを確認します。

例 B-2 /export/SUNWvxvm にあるパッケージをテストする

たとえば、パッケージが /export/SUNWvxvm にあるなら、コマンドを次のように指定します。

# pkgchk -d /export SUNWvxvm

エラーが表示されないことを確認します。

ファイルの作成、変更、削除を行うときに、ほかのコマンドでパッケージを検証することもできます。次にコマンド例を示します。

# 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}