Solaris のシステム管理 (基本編)

第 24 章 Solaris パッチの管理 (手順)

パッチの管理には、Solaris を実行しているシステムでの Solaris パッチの表示またはインストールが含まれます。また、不要なパッチや障害の発生したパッチの削除 (バックアウトと呼ばれる) も含まれます。

この章で説明する手順は次のとおりです。

この章の内容は以下のとおりです。

パッチをディスクレスクライアントシステムに追加する方法については、「ディスクレスクライアント OS サービスにパッチを適用する」を参照してください。

パッチについて

パッチは、ソフトウェアの正常な実行の妨げとなっている既存のファイルとディレクトリを置換または更新するためのファイルとディレクトリの集まりです。既存のソフトウェアと同様に、パッチはアプリケーションバイナリインタフェース (ABI) に準拠している指定の「パッケージ」形式を元に作成されます。パッケージの詳細については、第 22 章「ソフトウェアの管理 (概要)」を参照してください。

Solaris パッチの管理用ツール

パッチを管理するためのツールやコマンドには、次のものがあります。

パッチのインストールとバックアウト (削除) の詳細は、patchadd(1M) および patchrm(1M) のマニュアルページに示されています。各パッチには、パッチについての特定の情報が入っている README ファイルも含まれています。

パッチをインストールするにあたっては、以前にインストールされたパッチの詳細を知っておくことが必要な場合もあります。次の表に、すでにシステムにインストール済みのパッチについての情報を表示するためのコマンドを示します。

表 24-1 Solaris パッチの管理用コマンド

コマンド 

説明 

patchadd -pshowrev -p

システムに適用されたすべてのパッチを表示する 

pkgparam pkgid PATCHLIST

pkgid (パッケージの名前) によって識別されるパッケージに適用されたすべてのパッチを表示する。たとえば、SUNWadmap

patchadd -S Solaris-OS -p

OS サーバーにインストールされているすべての /usr パッチを表示する

Solaris パッチの配布

Sun のユーザーは全員、SunSolveTM プログラムを介して、セキュリティパッチなどの推奨されるパッチにアクセスできます。次の表に、Solaris パッチにアクセスするための各種方法を示します。

表 24-2 ユーザーパッチアクセス情報

ユーザーの種類 

説明 

SunSpectrum 契約ユーザー 

パッチに関する SunSolve データベースとパッチ情報にアクセスすることができる。これらの情報は、「Solaris パッチへのアクセス」に説明されているように、SunSolve Web ページまたは anonymous ftp を介して入手できる

これらのパッチは、夜間に更新される。ユーザーは、パッチ CD を 6 - 8 週間ごとに受け取る 

SunSpectrum 契約ユーザー以外  

セキュリティパッチの一般セットなどの推奨されるパッチにアクセスできる。これらの情報は、SunSolve を介して入手できる

Solaris パッチへのアクセス

Solaris パッチには、Web ページまたは anonymous ftp を介してアクセスできます。Sun サービス契約を購入したユーザーは、SunSolve Web ページから直接パッチを入手することも、定期的に配布されるパッチ CD-ROM からパッチを入手することもできます。

Web ページからパッチにアクセスする場合は、システムが次の要件を満たしている必要があります。

anonymous 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

Solaris パッチの番号付け

パッチは、固有の英数字文字列によって識別されます。これは、パッチのベース番号、ハイフン、パッチの改訂バージョン番号、の順で構成されています。たとえば、パッチ108528-10 は、SunOS 5.8 カーネル更新用パッチです。

インストール済みの Solaris パッチに関する情報を表示する方法

patchadd -p コマンドを使用して、システムにインストールされているパッチに関する情報を表示します。


$ patchadd -p

次のコマンドを使用して、特定のパッチがシステムにインストールされているかどうかを確認します。


$ patchadd -p | grep 111879

Solaris パッチの追加

サーバーまたはスタンドアロンシステムにパッチを追加する場合は、patchadd コマンドを使用します。ディスクレスクライアントシステムにパッチを追加する必要がある場合は、「ディスクレスクライアント OS サービスにパッチを適用する」を参照してください。

パッチを追加すると、patchadd コマンドは pkgadd コマンドを呼び出して、パッチディレクトリからローカルシステムのディスクへパッチパッケージをインストールします。厳密に言えば、patchadd コマンドは次の処理を行います。

パッチのインストール時に、patchadd はインストールプロセスの記録を現在の Solaris バージョンの /var/sadm/patch/ patch-number/log ファイルに保存します。

この patchadd コマンドは、次の条件ではパッチをインストールしません。

Solaris パッチを追加する方法

この手順では、「Solaris パッチへのアクセス」に記載されているサイトからパッチをすでに入手しているものとします。

  1. スーパーユーザーになります。

  2. パッチの README ファイル (通常は patch-id.README と呼ばれる) に入っている情報を確認します。

  3. パッチを追加します。


    # patchadd /patch-dir/patch-ID-revision 
    
  4. パッチが追加されていることを確認します。


    # patchadd -p | grep patch-ID-revision
    

例 - Solaris パッチを追加する

次の例では、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

Solaris パッチを SunSolve からダウンロードして追加する方法

  1. (省略可能) パッチを適用するシステムにログインします。

    あるいは、パッチをダウンロードし、ftp コマンドを使用してそのパッチを対象のシステムにコピーすることもできます。

  2. Web ブラウザを使用して、SunSolve パッチサイトに移動します。


    http://sunsolve.Sun.COM/pub-cgi/show.pl?target=patches/patch-access
    
  3. 推奨された特定のパッチだけをダウンロードするか、パッチクラスタをダウンロードするかを決めます。次のどちらかの手順に従います。

    1. 「Find Patch」検索フィールドにパッチ番号 (patch-ID) を入力し、「Find Patch」をクリックする。

      patch-ID を入力すると、最新バージョンのパッチがダウンロードされます。

      これが自由に使用できるパッチであれば、そのパッチの README が表示されます。これが自由に使用できないパッチであれば、ACCESS DENIED メッセージが表示されます。

      SPARC システムと IA システムではパッチ番号が異なっています。これについては、表示されるパッチの README に記載されています。使用しているシステムアーキテクチャに適合したパッチをインストールしてください。

    2. パッチを適用するシステムで実行している Solaris に基づいて、推奨されるパッチクラスタをクリックする。

  4. 「Download HTTP」あるいは「Download FTP」ボタンをクリックします。

    パッチ (またはパッチクラスタ) が正常にダウンロードされたら、Web ブラウザを閉じます。

  5. 必要に応じて、ダウンロードされたパッチパッケージが含まれているディレクトリに移動します。

  6. パッチパッケージを解凍します。


    % unzip patch-ID-revision
    
  7. スーパーユーザーになります。

  8. パッチ (または複数のパッチ) を追加します。


    # patchadd patch-ID-revision
    

Solaris パッチの削除

パッチをバックアウトすると、patchrm コマンドは、次の場合は除いてそのパッチによって修正されたすべてのファイルを復元します。

patchrm コマンドは、pkgadd を呼び出して、最初のパッチインストールで保管されたパッケージを復元します。

パッチを削除しているときに、patchrm はバックアウトプロセスの記録を /tmp/backoutlog.process_id に保存します。パッチが正常にバックアウトされた場合、このログファイルは削除されます。

Solaris パッチを削除する方法

この手順は、Solaris パッチを削除する必要がある場合に使用します。

  1. スーパーユーザーになります。

  2. パッチを削除します。


    # patchrm patch-ID-revision
    
  3. パッチが削除されていることを確認します。


    # patchadd -p | grep patch-ID-revision
    

例 - Solaris パッチを削除する

次の例では、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
#