パッチの管理には、Solaris を実行しているシステムでの Solaris パッチの表示またはインストールが含まれます。また、不要なパッチや障害の発生したパッチの削除 (バックアウトと呼ばれる) も含まれます。
この章で説明する手順は次のとおりです。
この章の内容は以下のとおりです。
パッチをディスクレスクライアントシステムに追加する方法については、「ディスクレスクライアント OS サービスにパッチを適用する」を参照してください。
パッチは、ソフトウェアの正常な実行の妨げとなっている既存のファイルとディレクトリを置換または更新するためのファイルとディレクトリの集まりです。既存のソフトウェアと同様に、パッチはアプリケーションバイナリインタフェース (ABI) に準拠している指定の「パッケージ」形式を元に作成されます。パッケージの詳細については、第 22 章「ソフトウェアの管理 (概要)」を参照してください。
パッチを管理するためのツールやコマンドには、次のものがあります。
パッチツール - パッチの管理にはこの Solaris Management Console ツールを使用する。
patchrm - Solaris システムにインストールされているパッチを削除するときに使用する。このコマンドは、ファイルシステムを、パッチが適用される以前の状態に復元する。
パッチのインストールとバックアウト (削除) の詳細は、patchadd(1M) および patchrm(1M) のマニュアルページに示されています。各パッチには、パッチについての特定の情報が入っている README ファイルも含まれています。
パッチをインストールするにあたっては、以前にインストールされたパッチの詳細を知っておくことが必要な場合もあります。次の表に、すでにシステムにインストール済みのパッチについての情報を表示するためのコマンドを示します。
表 24-1 Solaris パッチの管理用コマンド
コマンド |
説明 |
---|---|
patchadd -p、showrev -p |
システムに適用されたすべてのパッチを表示する |
pkgparam pkgid PATCHLIST |
pkgid (パッケージの名前) によって識別されるパッケージに適用されたすべてのパッチを表示する。たとえば、SUNWadmap |
patchadd -S Solaris-OS -p |
OS サーバーにインストールされているすべての /usr パッチを表示する |
Sun のユーザーは全員、SunSolveTM プログラムを介して、セキュリティパッチなどの推奨されるパッチにアクセスできます。次の表に、Solaris パッチにアクセスするための各種方法を示します。
表 24-2 ユーザーパッチアクセス情報
ユーザーの種類 |
説明 |
---|---|
SunSpectrum 契約ユーザー |
パッチに関する SunSolve データベースとパッチ情報にアクセスすることができる。これらの情報は、「Solaris パッチへのアクセス」に説明されているように、SunSolve Web ページまたは anonymous ftp を介して入手できる これらのパッチは、夜間に更新される。ユーザーは、パッチ CD を 6 - 8 週間ごとに受け取る |
SunSpectrum 契約ユーザー以外 |
セキュリティパッチの一般セットなどの推奨されるパッチにアクセスできる。これらの情報は、SunSolve を介して入手できる |
Solaris パッチには、Web ページまたは anonymous ftp を介してアクセスできます。Sun サービス契約を購入したユーザーは、SunSolve Web ページから直接パッチを入手することも、定期的に配布されるパッチ CD-ROM からパッチを入手することもできます。
Web ページからパッチにアクセスする場合は、システムが次の要件を満たしている必要があります。
インターネットに接続されている
Netscape などの Web ブラウズソフトウェアを実行できる
anonymous ftp を使用してパッチにアクセスする場合は、コンピュータが次の要件を満たしている必要があります。
インターネットに接続されている
ftp プログラムを実行できる
SunSolveTM からのパッチにアクセスするには、次の URL を使用してください。
http://sunsolve.Sun.COM/pub-cgi/show.pl?target=patches/patch-access |
推奨されるいくつかのパッチからなるパッチクラスタをインストールすることも、自由に使用できる個々のパッチをインストールすることもできます。パッチレポートも入手できます。
次の URL を使用して、公開されているパッチにアクセスすることもできます。
http://www.ibiblio.org/pub/sun-info/sun-patches
パッチは、固有の英数字文字列によって識別されます。これは、パッチのベース番号、ハイフン、パッチの改訂バージョン番号、の順で構成されています。たとえば、パッチ108528-10 は、SunOS 5.8 カーネル更新用パッチです。
patchadd -p コマンドを使用して、システムにインストールされているパッチに関する情報を表示します。
$ patchadd -p |
次のコマンドを使用して、特定のパッチがシステムにインストールされているかどうかを確認します。
$ patchadd -p | grep 111879 |
サーバーまたはスタンドアロンシステムにパッチを追加する場合は、patchadd コマンドを使用します。ディスクレスクライアントシステムにパッチを追加する必要がある場合は、「ディスクレスクライアント OS サービスにパッチを適用する」を参照してください。
パッチを追加すると、patchadd コマンドは pkgadd コマンドを呼び出して、パッチディレクトリからローカルシステムのディスクへパッチパッケージをインストールします。厳密に言えば、patchadd コマンドは次の処理を行います。
管理ホストとターゲットホストの Solaris バージョン番号を確認する。
インストール中のパッチによって置換されるパッチ、このパッチに必要な他のパッチ、およびこのパッチと互換性を持たないパッチに関する情報を使用して、パッチパッケージの pkginfo ファイルを更新する。
パッチのインストール時に、patchadd はインストールプロセスの記録を現在の Solaris バージョンの /var/sadm/patch/ patch-number/log ファイルに保存します。
この patchadd コマンドは、次の条件ではパッチをインストールしません。
パッケージがホストに完全にインストールされていない。
パッチパッケージのアーキテクチャが、システムのアーキテクチャと異なる。
パッチパッケージのバージョンが、インストールされているパッケージのバージョンと一致しない。
同じベースコードと上位のバージョン番号を持つパッチがすでにインストールされている。
パッチが、すでにインストールされている他のパッチと互換性を持たない。(インストール済みの各パッチは、この情報を pkginfo ファイルに格納している。)
インストールしようとしているパッチには他のパッチが必要だが、そのパッチがインストールされていない。
この手順では、「Solaris パッチへのアクセス」に記載されているサイトからパッチをすでに入手しているものとします。
スーパーユーザーになります。
パッチの README ファイル (通常は patch-id.README と呼ばれる) に入っている情報を確認します。
パッチを追加します。
# patchadd /patch-dir/patch-ID-revision |
パッチが追加されていることを確認します。
# patchadd -p | grep patch-ID-revision |
次の例では、Solaris 8 パッチ 111879-01 を追加しています。
# patchadd /export/Sol8patch/111879-01 Checking installed patches... Verifying sufficient filesystem capacity (dry run method)... Installing patch packages... Patch number 111879-01 has been successfully installed. See /var/sadm/patch/111879-01/log for details Patch packages installed: SUNWwsr # patchadd -p | grep 111879-01 Patch: 111879-01 Obsoletes: Requires: Incompatibles: Packages: SUNWwsr |
(省略可能) パッチを適用するシステムにログインします。
あるいは、パッチをダウンロードし、ftp コマンドを使用してそのパッチを対象のシステムにコピーすることもできます。
Web ブラウザを使用して、SunSolve パッチサイトに移動します。
http://sunsolve.Sun.COM/pub-cgi/show.pl?target=patches/patch-access |
推奨された特定のパッチだけをダウンロードするか、パッチクラスタをダウンロードするかを決めます。次のどちらかの手順に従います。
「Find Patch」検索フィールドにパッチ番号 (patch-ID) を入力し、「Find Patch」をクリックする。
patch-ID を入力すると、最新バージョンのパッチがダウンロードされます。
これが自由に使用できるパッチであれば、そのパッチの README が表示されます。これが自由に使用できないパッチであれば、ACCESS DENIED メッセージが表示されます。
SPARC システムと IA システムではパッチ番号が異なっています。これについては、表示されるパッチの README に記載されています。使用しているシステムアーキテクチャに適合したパッチをインストールしてください。
パッチを適用するシステムで実行している Solaris に基づいて、推奨されるパッチクラスタをクリックする。
「Download HTTP」あるいは「Download FTP」ボタンをクリックします。
パッチ (またはパッチクラスタ) が正常にダウンロードされたら、Web ブラウザを閉じます。
必要に応じて、ダウンロードされたパッチパッケージが含まれているディレクトリに移動します。
パッチパッケージを解凍します。
% unzip patch-ID-revision |
スーパーユーザーになります。
パッチ (または複数のパッチ) を追加します。
# patchadd patch-ID-revision |
パッチをバックアウトすると、patchrm コマンドは、次の場合は除いてそのパッチによって修正されたすべてのファイルを復元します。
パッチが patchadd -d を使用してインストールされた場合 (-d オプションは、更新中または置換中のファイルのコピーを保管しないように patchadd に指示する)
パッチが最新のパッチによって置換されている場合
パッチが他のパッチによって必要とされている場合
patchrm コマンドは、pkgadd を呼び出して、最初のパッチインストールで保管されたパッケージを復元します。
パッチを削除しているときに、patchrm はバックアウトプロセスの記録を /tmp/backoutlog.process_id に保存します。パッチが正常にバックアウトされた場合、このログファイルは削除されます。
この手順は、Solaris パッチを削除する必要がある場合に使用します。
スーパーユーザーになります。
パッチを削除します。
# patchrm patch-ID-revision |
パッチが削除されていることを確認します。
# patchadd -p | grep patch-ID-revision |
次の例では、Solaris 8 パッチ 111879-01 を削除しています。
# patchrm 111879-01 Checking installed patches... Backing out patch 111879-01... Patch 111874-02 has been backed out. # showrev -p | grep 111879-01 # |