システム管理コマンド patchrm(1M)
【名前】
patchrm - システムからのパッチ削除とパッチ適用前のファイル復
元
【形式】
patchrm [-f] [-G] [-B backout_dir] [-C net_install_image |
-R client_root_path | -S service] [-t] patch_id
【機能説明】
patchrm は、Solaris 2.x オペレーティング環境、および Solaris
2.x と互換性がある、2.x 以降の Solaris オペレーティング環境
(Solaris 8 など) を稼動しているシステムから、パッチパッ ケー
ジを削除し、以前に保存しておいた (パッチ適用前の) ファイルを
復元します。patchrm は Solaris 1.x システム用のパッチには 使
用できません。patchrm を実行するにはスーパーユーザーになる必
要があります。
zones(5) に関しては、大域ゾーンで呼び出されると、デフォル ト
で は patchrm はすべてのゾーンにおいてすべての適切なパッケー
ジにパッチを適用します。ゾーン環境におけるパッチの削除動作は
次の要因により異なります。
o -G オプションの使用 (以下に説明)
o pkginfo ファイ ル の SUNW_PKG_ALLZONES 変 数 の 設 定
(pkginfo(4) を参照)
o 呼び出される patchrm のゾーンタイプ (大域またはローカル
(非大域))
上記の要因の相互関係を、以下の「ゾーンの -G と pkginfo 変 数
の相互関係」に示します。
Solaris ゾーン環境でパッケージからパッチを削除すると、多数の
ゾー ン 関連のメッセージ、patchrm を大域ゾーンまたはローカル
ゾーンのどちらで呼び出すかによって 異 な る 頻 度 と 内 容、
SUNW_PKG_ALLZONES の設定、および -G オプションの使用が表示さ
れます。
【オプション】
以下のオプションを指定できます。
-B backout_dir パッケージデータベースとは別のディレ
クトリにバックアウトデータ (パッチの
バックアウト時に利用されるデータ) が
保存されているパッチを、バックアウト
します。パッチのインス トー ル 時 に
patchadd コマンドでデフォルトのバッ
クアウトデータのディレクトリを変更し
た場合のみ、このオプションを使用しま
す。backout_dir には絶対パス名を指定
してください。
-C net_install_image setup_install_server によって作成 さ
れた、ネットインストールイメージ上の
miniroot にあるファイルに対して適 用
されたパッチを削除 (バックアウト) し
ま す。 net_install_image に は、
Solaris 2.6 およびその互換バージョン
のブートディレクトリへの絶対パス名を
指定してください。
-f 他のパッチに置き換えられているかどう
かに関係なく、指定したパッチを削除 (
バックアウト) します。
-G 現在のゾーンでのみパッケージからパッ
チを削除します。大域ゾーンで使用され
る場合、大域ゾーンでのみパッチはパッ
ケージから削除され、既存の非大域ゾー
ン、または将来作成される非大域ゾーン
のパッケージからは削除されません。非
大域ゾーンで使用される場合、非 大 域
ゾーンでのみパッチはパッケージから削
除されます。以下の「ゾーンの -G と
pkginfo 変数の相互関係」を参照してく
ださい。
-R client_root_path patchrm によって生成されるすべ て の
パッ チ ファ イ ル を ディ レ クトリ
client_root_path の下に置 き ま す。
client_root_path には、サーバー上の
クライアントのルートディレクトリを絶
対 パ ス名で指定します。この -R オプ
ションは -S オプションと同時に指定す
ることはできません。
-S service 代替サービス (たとえば Solaris_2.3)
を指定します。ここでのサービスとは、
クライアント・サーバーモデ ル の OS
サービスのことを指しており、サーバー
のコンソールでのみ使用できます。サー
バーは、smosservice(1M) で作成された
/usr 共有ファイルシステムを持つこ と
ができ、登録された OS サービスをクラ
イアントが利用できるようにすることが
可能です。この -S オプションは -R オ
プションと同時に指定することはできま
せん。
-t Solaris 10 より以前のリリースにお い
て返される patchadd 戻りコードを使用
できるようにします。zones(5) 環境 で
は戻り値 0 (ゼロ) は正常終了を示しま
す。他の戻り値はエラーを示します。
[ゾーンの -G と pkginfo 変数の相互関係]
次のリストに、大域ゾーンおよびローカル (非大域の) ゾー ン で
パッチを削除する場合の -G オプションおよび SUNW_PKG_ALLZONES
変数 (pkginfo(4) を参照) の相互関係を示します。
大域ゾーン、-G を指定
SUNW_PKG_ALLZONES を true に設定しているパッケージがある
場合:エラーです。変更はありません。
SUNW_PKG_ALLZONES を true に設定しているパッケージがない
場合:大域ゾーンでのみパッケージからパッチを削除します。
大域ゾーン、-G を指定しない
SUNW_PKG_ALLZONES を true に設定しているパッケージがある
場 合:すべてのゾーンで適切なパッケージからパッチを削除し
ます。
SUNW_PKG_ALLZONES を true に設定しているパッケージがない
場 合:すべてのゾーンで適切なパッケージからパッチを削除し
ます。
ローカルゾーン、-G を指定または指定しない
SUNW_PKG_ALLZONES を true に設定しているパッケージがある
場合:エラーです。変更はありません。
SUNW_PKG_ALLZONES を true に設定しているパッケージがない
場 合:ローカルゾーンでのみパッケージからパッチを削除しま
す。
【オペランド】
以下のオペランドを指定できます。
patch_id パッチ番号。たとえば 104945-02 のように指 定
します。
【使用例】
以下に示す例では、パッチ 104945-02 がシステムにインストー ル
されていることを前提としています。また、/usr/sbin ディレクト
リのコマンドを使用しているものとします。
例 1: スタンドアロンシステム上の 1 つのパッチを削除する
スタンドアロンシステム上のパッチを 1 つ削除 (バックアウ ト )
する例を示します。
example# patchrm 104945-02
例 2: サーバーのコンソールからクライアントシステム上の 1 つ
のパッチを削除する
サーバーのコンソールから、クライアントシステム上のパッチを 1
つ削除 (バックアウト) する例を示します。
example# patchrm -R /export/root/client1 104945-02
例 3: サーバーの OS サービス領域上の 1 つのパッチを削除する
サーバーの OS サービス領域にあるパッチを 1 つ削除 (バック ア
ウト) する例を示します。
example# patchrm -S Solaris_2.3 104945-02
例 4: ネットインストールイメージ上の 1 つのパッチを削除する
ネットインストールイメージ上のパッチを 1 つ削除 (バックア ウ
ト) する例を示します。
example# patchrm -C /export/Solaris_2.6/Tools/Boot 104945-02
【終了ステータス】
以下の終了ステータスが返されます。
0 正常終了
>0 エラーが発生した
【属性】
次の属性については attributes(5) のマニュアルページを参照 し
てください。
____________________________________________________________
| 属性タイプ | 属性値 |
|_____________________________|_____________________________|
| 使用条件 | SUNWswmt, SUNWcsu |
|_____________________________|_____________________________|
【診断】
パッチのバックアウト時によく発生する問題、出力される エ ラー
メッセージ、その対処方法について説明します。
メッセージ
prebackout patch exited with return code code.
patchrm exiting.
説明・対処方法
パッチに付属している prebackout スクリプトが 0 以 外
の 終了コードで終了しました。prebackout スクリプトの
トレースを作成して、prebackout スクリプトが失敗し た
原因を調べてください。問題を修正するには、prebackout
スクリプトの先頭行に -x オプションを追加 し て 再 度
patchrm を実行してください。
メッセージ
postbackout patch exited with return code code.
patchrm exiting.
説明・対処方法
パッチに付属している postbackout スクリプトが 0 以外
の終了コードで終了しました。postbackout スクリプトを
参照して postbackout スクリプトが失敗した原因を調 べ
てください。問題を修正するには、postbackout スクリプ
トの先頭行に -x オプションを追加して、必要な場 合 は
postbackout スクリプトだけを再度実行してください。
メッセージ
Only one service may be defined.
説明・対処方法
複数の OS サービスからパッチをバックアウトしようとし
ています。複数の OS サービスからパッチをバックアウト
するには、各 OS サービスごとに別々に patchrm を実行
してください。
メッセージ
The -S and -R arguments are mutually exclusive.
説明・対処方法
ネイティブでない OS サービスと client_root_path から
パッ チをバックアウトしようとしています。これら 2 つ
の引数は互いに排他的です。ネイティブでない usr パー
ティ ショ ンからパッチをバックアウト (削除) するには
-S オプションを使用する必要があります。クライアン ト
の ( ネイティブまたは非ネイティブの) ルートパーティ
ションからパッチをバックアウトするには -R オプション
を使用する必要があります。
メッセージ
The service service cannot be found on this system
説明・対処方法
ネイティブでない OS サービスからパッチをバックアウト
( 削除) しようとしましたが、指定された OS サービスは
システムにインストールされていません。正しい OS サー
ビスを指定してください。
メッセージ
Only one client_root_path may be defined.
説明・対処方法
-R オプションを指定して複数の client_root_path を 指
定 し て います。1 回の patchrm の実行につき -R オプ
ションは 1 回だけ使用できます。
メッセージ
The dir directory cannot be found on this system.
説明・対処方法
-R オプションを使用して、マウントされていないまた は
システムに存在しないディレクトリを指定しています。正
しいディレクトリ名を指定して、パッチのバックアウトを
再度実行してください。
メッセージ
Patch patch_id has not been successfully installed to this system.
説明・対処方法
システムにインストールされていないパッチをバックアウ
ト (削除) しようとしています。パッチが適用されたファ
イルをパッチ適用前のバージョンに復元するには、最初の
インストール時に使用した CD から元のファイルを復元し
てください。
メッセージ
Patch patch_id has not been successfully applied to this system.
Will remove directory dir.
説明・対処方法
システムに適用されていないパッチをバックアウト (削除
) しようとしています。パッチは適用されていませんが、
( 失 敗 し た patchadd に よっ て 作 成 さ れ た )
/var/sadm/patch/patch_id ディ レ クトリが残っていま
す。パッチをバックアウトすることはできません。パッチ
が適用されたファイルをパッチ適用前のバージョンに復元
するには、最初のインストール時に使用した CD から元の
ファイルを復元してください。
メッセージ
This patch was obsoleted by patch patch_id.
Patches must be backed out in the reverse order in
which they were installed. Patch backout aborted.
説明・対処方法
不適切な順番でパッチをバックアウト (削除) しようとし
ています。パッチは正しい順序でバックアウトする必要が
あります。バックアウトしようとしているパッチ以 外 の
パッチにも影響が及んでいる可能性があります。
メッセージ
Patch patch_id is required to be installed by an already
installed patch_id.
It cannot be backed out until the required patch is backed out first.
説明・対処方法
インストール (適用) されている必要があるとメッセージ
中 に 示されているパッチをバックアウト (削除) してか
ら、目的のパッチをバックアウトしてください。
メッセージ
The installation of patch patch_id was interrupted.
説明・対処方法
以前に行なったパッチのインストールが中断されて い ま
す。目的のパッチをバックアウト (削除) する前に、イン
ストールが中断されたパッチをインストールする必要があ
ります。
メッセージ
Patch patch_id was installed without backing up the original files.
It cannot be backed out.
説明・対処方法
パッチの適用時に patchadd コマンドの -d オプションを
指定したか、またはディスク領域を確保するためにパッチ
の保存領域が削除されています。このため、元のファイル
が 保存されていないので patchrm を使用できません。元
のファイルはインストール CD からのみ復元できます。
メッセージ
pkgadd of pkgname package failed return code code.
See /var/sadm/patch/patch_id/log for reason for failure.
説明・対処方法
メッセージに示されているパッチパッケージのインストー
ルに失敗しています。ログファイルを参照して原因を確認
してください。問題を修正後に、バックアウトスクリプト
を再度実行してください。
メッセージ
Restore of old files failed.
説明・対処方法
パッチが適用されたファイルをパッチ適用前のバージョン
に復元するために、バックアウトスクリプトが cpio コマ
ンドを使用しています。上記のメッセージの前に cpio コ
マ ンドからの出力が表示されているはずです。cpio が失
敗した原因を調べて必要な処置を行なってください。これ
は、Solaris 2.4 およびそれ以前のバージョンのシステム
で発生するエラーです。
【関連項目】
cpio(1), pkginfo(1), patchadd(1M), pkgadd(1M), pkgchk(1M),
pkgrm(1M), showrev(1M), pkginfo(4), attributes(5), zones(5)
【注意事項】
クライアント・サーバーマシンでは、既存のクライアントからまた
はクライアントのルートディレクトリ (templates 領域) からパッ
チパッケージは削除 (バックアウト) されません。このため、すべ
て のクライアントマシンにおいて直接 patchrm を使用して、クラ
イアントマシンから適切な時にパッチを削除する必要があります。
パッケージユーティリティ(pkgadd, pkgrm, pkgchk) に影響するバ
グは、patchadd または patchrm の動作に影響する場合があ り ま
す。 patchadd および patchrm は、上記のパッケージユーティリ
ティを使用してパッチパッケージをインストールおよびバックアウ
トしています。これらのパッケージユーティリティのバグを修正す
るパッチが提供されているかどうかを確認し、提供されている場合
はそのパッチを先に適用してから、他のパッチを適用することをお
勧めします。現在提供されている、パッケージユーティリティに対
するパッチは、次のとおりです。
Solaris 2.1:
100901
Solaris 2.2:
101122
Solaris 2.3:
101331
Solaris 2.4 (SPARC 版):
102039
Solaris 2.4 (Intel 版):
102041
Solaris 2.5.1 (SPARC 版):
104578
Solaris 2.5.1 (Intel 版):
104579
Solaris 2.6 (SPARC 版):
106292
Solaris 2.6 (Intel 版):
106293
|
|