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

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

この章では、Solaris が動作するシステム上でパッチを管理する手順について説明します。

この章では、次の内容について説明します。

Solaris 環境での基本的なパッチの管理方法については、第 24 章「Solaris パッチの管理 (概要)」を参照してください。

smpatch コマンドに関する問題の障害追跡については、http://sunsolve.Sun.COM/pub-cgi/show.pl?target=patches/spfaq を参照してください。

Solaris 環境でのパッチ管理 (作業マップ)

Solaris 環境でのすべてのパッチ管理作業を次のマップに一覧表示します。各作業は、署名付きパッチや署名のないパッチの管理をはじめとする一連の追加作業を示しています。

作業 

説明 

参照先 

パッチのディスク容量の要件を特定する 

システムのディスク容量が十分であるかどうかを確認し、パッチをダウンロードまたはスプールする。 

パッチの追加に必要なディスク容量があるかどうかを特定する

署名付きパッチと署名のないパッチのどちらを追加するかを判断する 

現在の環境にとって署名付きパッチと署名のないパッチのどちらが適しているかを判断する。 

署名付きパッチまたは署名のないパッチの選択

システムに署名付きパッチまたは署名のないパッチを追加する 

署名付きパッチを追加するには、次のいずれかのコマンドを使用する。  

 

 

Solaris 9 12/03 リリースでは patchadd コマンドを使用する。

署名付き Solaris パッチのダウンロードと追加を自動で行う方法 (patchadd)

 

Solaris 2.6、7、8、または 9 リリースでは smpatch コマンドを使用する。

 

 

smpatch コマンド – この方法が使えるようにシステムを準備する。

smpatch コマンドで署名付きパッチを管理するための準備 (作業マップ)

 

smpatch コマンド – システムに署名付きパッチを追加する。

smpatch コマンドによる署名付きパッチの管理 (作業マップ)

 

システムに署名のないパッチを追加する。 

署名のない Solaris パッチの管理 (作業マップ)

パッチの追加に必要なディスク容量があるかどうかを特定する

パッチのダウンロードまたはスプールを開始する前に、ディスク容量に関する次の要件を確認してください。

署名付きパッチまたは署名のないパッチの選択

署名付きパッチと署名のないパッチのどちらを追加するかは、パッチのダウンロード時にセキュリティ保護を適用する必要があるかどうかによって決定します。パッチのダウンロード時にセキュリティ保護を適用する必要がある場合は、署名付きパッチを追加します。

patchadd コマンドによる署名付きパッチの追加 (作業マップ)

作業 

説明 

参照先 

1. パッケージキーストアをセットアップする 

Sun のルート CA 証明書をパッケージキーストアにインポートする 

信頼される証明書をパッケージキーストアにインポートする方法 (pkgadm addcert)

2. 署名付きパッチをダウンロードし、追加する 

署名付きパッチをダウンロードし、それを patchadd コマンドを使ってシステムに追加する際に、次のいずれかの方法を選択する

 

 

署名付き Solaris パッチのダウンロードと追加を手動で行う 

署名付き Solaris パッチのダウンロードと追加を手動で行う方法 (patchadd)

 

署名付き Solaris パッチのダウンロードと追加を自動で行う 

署名付き Solaris パッチのダウンロードと追加を自動で行う方法 (patchadd)

3. 署名付きパッチを追加する 

patchadd コマンドを使って署名付きパッチを追加する

Java キーストアに Sun の証明書をインポートする方法

信頼される証明書をパッケージキーストアにインポートする方法 (pkgadm addcert)

patchadd コマンドを使って署名付きパッチをシステムに追加するには、署名付きパッチ上の署名を検証できるように、Sun のルート CA 証明書を事前に追加しておく必要があります。この証明書は、Java キーストアからパッケージキーストアへインポートできます。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. Java キーストア内のルート CA 証明書を一時ファイルへエクスポートします。

    たとえば、次のようになります。


    # keytool -export -storepass changeit -alias gtecybertrustca -keystore 
    gtecybertrustca -keystore /usr/j2se/jre/lib/security/cacerts -file 
    /tmp/root.crt
    Certificate stored in file </tmp/root.crt>

    --export

    信頼される証明書をエクスポートする。 

    -storepass storepass

    Java キーストアの完全性を維持するためのパスワードを指定する。 

    -alias gtecybertrustca

    信頼される証明書の別名を指定する。 

    -keystore certfile

    キーストアファイルの名前と場所を指定する。 

    -file filename

    エクスポートされた証明書を格納するファイルを指定する。 

  3. 一時ファイル内のルート CA 証明書をパッケージキーストアにインポートします。

    たとえば、次のようになります。


    # pkgadm addcert -t -f der /tmp/root.crt
    Enter Keystore Password: storepass
          Keystore Alias: GTE CyberTrust Root
             Common Name: GTE CyberTrust Root
        Certificate Type: Trusted Certificate
      Issuer Common Name: GTE CyberTrust Root
          Validity Dates: <Feb 23 23:01:00 1996 GMT>-<Feb 23 23:59:00 ... 
         MD5 Fingerprint: C4:D7:F0:B2:A3:C5:7D:61:67:F0:04:CD:43:D3:BA:58
        SHA1 Fingerprint: 90:DE:DE:9E:4C:4E:9F:6F:D8:86:17:57:9D:D3:91...
    
    Are you sure you want to trust this certificate? yes
    Trusting certificate <GTE CyberTrust Root>
    Type a Keystore protection Password.
    Press ENTER for no protection password (not recommended): 
    For Verification: Type a Keystore protection Password.
    Press ENTER for no protection password (not recommended): 
    Certificate(s) from </tmp/root.crt> are now trusted

    --t

    証明書が信頼される CA 証明書であることを示す。このオプションを指定すると、コマンド出力に証明書の詳細情報が含まれ、ユーザーはその情報の確認を求められる。 

    -f format

    証明書または非公開鍵の形式を指定する。インポートする証明書は、PEM (pem)、バイナリ DER (der) のいずれかの形式を使ってコード化されている必要がある。

    certfile

    証明書を含むファイルを指定する。 

  4. 証明書の情報を表示します。

    たとえば、次のようになります。


    # pkgadm listcert -P pass:storepass
        Keystore Alias: GTE CyberTrust Root
           Common Name: GTE CyberTrust Root
      Certificate Type: Trusted Certificate
    Issuer Common Name: GTE CyberTrust Root
        Validity Dates: <Feb 23 23:01:00 1996 GMT>-<Feb 23 23:59:00 2006 GMT>
       MD5 Fingerprint: C4:D7:F0:B2:A3:C5:7D:61:67:F0:04:CD:43:D3:BA:58
      SHA1 Fingerprint: 90:DE:DE:9E:4C:4E:9F:6F:D8:86:17:57:9D:D3:91:
    BC:65:A6:89:64
  5. 一時ファイルを削除します。

    たとえば、次のようになります。


    # rm /tmp/root.crt
    

署名付き Solaris パッチのダウンロードと追加を手動で行う方法 (patchadd)

次の手順は、署名付き Solaris パッチのダウンロードと追加を別個に手動で行いたい場合に使用できます。

この手順では、パッケージキーストアのセットアップが完了しているものと仮定しています。

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

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

  2. Web ブラウザを開き、SunSolve Online のサイトに移動します。


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

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

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

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

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

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

  4. 「この署名付きパッチ (n bytes) をダウンロードする HTTPS FTP (Download Signed Patch HTTPS or FTP)」ボタンをクリックします。

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

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

  6. スーパーユーザーになるか、同等の役割を引き受けます。

  7. 署名付きパッチを追加します。

    たとえば、次のようになります。


    # patchadd /tmp/114861-01.jar
    

署名付き Solaris パッチのダウンロードと追加を自動で行う方法 (patchadd)

次の手順は、署名付き Solaris パッチのダウンロードと追加を、自動的に一度で行いたい場合に使用できます。

この手順では、パッケージキーストアのセットアップが完了しているものと仮定しています。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. 署名付きのパッチを SunOnline サイトからダウンロードし、システムに追加します。

    たとえば、次のようになります。


    # patchadd "http://sunsolve.central.sun.com/cgi/patchDownload.pl?target=
    114684&method=hs"
    .
    .
    .
    Downloading patch from ...
    + dwnld_file http://sunsolve.central.sun.com/cgi/patchDownload.pl?target=
    114684&method=hs /tmp/patchadd-dwnld /var/sadm/security  console patchadd
    ...........20%...........40%...........60%...........80%...........100%
    ## Downloading...
    ## Download Complete
    .
    .
    .
    Enter keystore password: xxx
    .
    .
    .

smpatch コマンドで署名付きパッチを管理するための準備 (作業マップ)

smpatch コマンドを使って署名付きパッチをシステムに追加する場合は、次のマップに示す準備作業をすべて完了しておく必要があります。

作業 

説明 

参照先 

1. Solaris パッケージの要件を確認する 

パッチツールをサポートするために必要な Solaris パッケージがシステムにインストールされていることを確認する 

署名付きパッチツールのパッケージ要件を確認する方法 (smpatch)

2. Solaris パッチ管理ツールをダウンロードし、インストールする 

使用している Solaris リリースに対応した Solaris パッチ管理ツールを選択する 

Solaris パッチ管理ツールのダウンロードおよびインストール方法 (smpatch)

3. キーストアに Sun の証明書をインポートする 

パッチの署名の検証に使用する Sun の証明書をインポートし、受け入れる 

SUNWcert パッケージは、署名付きパッチツールのインストール時に自動的にインストールされる。すでに署名付きパッチツールがインストールされている場合は、SUNWcert パッケージを個別にインストールしてはならない

Java キーストアに Sun の証明書をインポートする方法

4. (省略可能) キーストアのパスワードを変更する 

キーストアの安全性を確保するため、パスワードを変更する 

Java キーストアのパスワードの変更方法

5. パッチ環境を設定する 

署名付きパッチを追加できるようにシステムを設定する 

パッチ環境の設定方法 (smpatch)

Solaris パッチ管理ツールの使用 (smpatch)

Solaris パッチ管理ツールの使用時には、次の点に注意してください。

署名付きパッチツールのパッケージ要件を確認する方法 (smpatch)

システムに署名付きパッチツールをインストールする前に、必要な Solaris パッケージがインストールされていることを確認します。Solaris 2.6、7、または 8 を実行している場合は、最小のシステム構成にいくつかのパッケージを追加する必要があります。Solaris 9 を実行している場合は、署名付きパッチツールを使用するためには開発者クラスタ (SUNWCprog) をインストールする必要があります。

  1. 実行している Solaris リリースを確認し、次のいずれかの作業を行います。

    1. Solaris 2.6 を実行している場合は、次のようにして、システムに必要なパッケージがインストールされているかどうかを確認します。


      # pkginfo | grep SUNWmfrun
      system      SUNWmfrun      Motif RunTime Kit
      # pkginfo | grep SUNWlibC
      system      SUNWlibC       Sun Workshop Compilers Bundled libC
      # pkginfo | grep SUNWxcu4
      system      SUNWxcu4       XCU4 Utilities
    2. Solaris 7 または 8 を実行している場合は、次のようにして、システムに必要なパッケージがインストールされているかどうかを確認します。


      # pkginfo | grep SUNWmfrm
      system      SUNWmfrun      Motif RunTime Kit
      # pkginfo | grep SUNWlibC
      system      SUNWlibC       Sun Workshop Compilers Bundled libC
    3. Solaris 9 を実行している場合は、次のようにして、システムに必要な開発者クラスタがインストールされていることを確認します。


      # cat /var/sadm/system/admin/CLUSTER
      CLUSTER=SUNWCprog
  2. pkginfo コマンドを実行しても何も出力されない場合は、必要なパッケージをインストールしてください。

Solaris パッチ管理ツールのダウンロードおよびインストール方法 (smpatch)

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

  2. 次のリンクをたどって、使用している Solaris リリースに適した tar ファイルをダウンロードします。

    http://www.sun.com/PatchPro

  3. 次のいずれかの方法で、パッチツールパッケージを展開します。

    1. Solaris 2.6 または 7 を実行している場合は、次のコマンドを使ってパッケージの圧縮を解除し、展開します。


      # uncompress SUNWpkg-name.tar.Z
      # tar xvf SUNWpkg-name.tar
      
    2. Solaris 8 または 9 を実行している場合は、次のコマンドを使ってパッケージを展開します。


      # gunzip -dc SUNWpkg-name.tar.gz | tar xvf -
      
  4. インストールスクリプトを実行します。


    # cd unzipped-pkg-dir
    # ./setup
    

    インストールスクリプトの実行時のエラーについては、署名付きパッチに関する問題の障害追跡 (smpatch)を参照してください。

例 — Solaris パッチ管理ツールのダウンロードおよびインストール (smpatch)

次の例では、Solaris 2.6 パッチ管理ツールをダウンロードし、インストールします。


# uncompress pproSunOSsparc5.6jre2.1.tar.Z
# tar xvf pproSunOSsparc5.6jre2.1.tar 
.
.
.
# cd pproSunOSsparc5.6jre2.1
# ./setup
.
.
.

次の例では、Solaris 9 パッチ管理ツールをダウンロードし、インストールします。


# gunzip -dc pproSunOSsparc5.9jre2.1.tar.gz | tar xvf -
.
.
# cd pproSunOSsparc5.9jre2.1
# ./setup
.
.
.

Java キーストアに Sun の証明書をインポートする方法

keytool コマンドを使って、システムに追加する署名付きパッチの検証に使用する Sun の証明書をインポートし、検証します。証明書を以前のインストールからインポートした場合も、この作業を実行する必要があります。


注 –

SUNWcert パッケージは、署名付きパッチツールのインストール時に自動的にインストールされます。すでに署名付きパッチツールがインストールされている場合は、SUNWcert パッケージを個別にインストールしないでください。


  1. Solaris パッチ管理ツールをダウンロードするために必要な準備作業が完了していることを確認します。

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

  3. Sun のルート証明書と Sun の Class B 証明書のフィンガープリントを確認します。


    # /usr/j2se/bin/keytool -printcert -file /etc/certs/SUNW/
    smirootcacert.b64
    # /usr/j2se/bin/keytool -printcert -file /etc/certs/SUNW/smicacert.b64
    
  4. 次のサイトで、コマンドの出力結果と Sun のルート証明書および Class B 証明書のフィンガープリントが一致していることを確認します。


    https://www.sun.com/pki/ca/
    
  5. Sun の Class B 証明書をシステムにインポートし、受け入れます。


    # /usr/j2se/bin/keytool -import -alias smicacert -file /etc/certs/SUNW/ 
    smicacert.b64  -keystore /usr/j2se/jre/lib/security/cacerts
    Enter keystore password:  changeit
    Owner: O=Sun Microsystems Inc, CN=Sun Microsystems Inc CA (Class B)
    Issuer: CN=Sun Microsystems Inc Root CA, O=Sun Microsystems Inc, C=US
    Serial number: 1000006
    Valid from: Mon Nov 13 12:23:10 MST 2000 until: Fri Nov 13 12:23:10 ...
    Certificate fingerprints:
           MD5:  B4:1F:E1:0D:80:7D:B1:AB:15:5C:78:CB:C8:8F:CE:37
           SHA1: 1E:38:11:02:F0:5D:A3:27:5C:F9:6E:B1:1F:C4:79:95:E9:6E:D6:DF
    Trust this certificate? [no]:  yes
    Certificate was added to keystore
  6. Sun の ルート証明書をシステムにインポートし、受け入れます。


    # /usr/j2se/bin/keytool -import -alias smirootcacert -file /etc/certs/
    SUNW/
    smirootcacert.b64 -keystore /usr/j2se/jre/lib/security/cacerts
    Enter keystore password:  changeit
    Owner: CN=Sun Microsystems Inc Root CA, O=Sun Microsystems Inc, C=US
    Issuer: CN=GTE CyberTrust Root, O=GTE Corporation, C=US
    Serial number: 200014a
    Valid from: Tue Nov 07 15:39:00 MST 2000 until: Thu Nov 07 16:59:00 ...
    Certificate fingerprints:
            MD5:  D8:B6:68:D4:6B:04:B9:5A:EB:34:23:54:B8:F3:97:8C
            SHA1: BD:D9:0B:DA:AE:91:5F:33:C4:3D:10:E3:77:F0:45:09:4A:E8:A2:98
    Trust this certificate? [no]:  yes
    Certificate was added to keystore
  7. 署名付きパッチ証明書をシステムにインポートし、受け入れます。


    # /usr/j2se/bin/keytool -import -alias patchsigning -file /opt/SUNWppro/
    etc/certs/patchsigningcert.b64 -keystore /usr/j2se/jre/lib/security/
    cacerts
    Enter keystore password:  changeit
    Owner: CN=Enterprise Services Patch Management, O=Sun Microsystems Inc
    Issuer: O=Sun Microsystems Inc, CN=Sun Microsystems Inc CA (Class B)
    Serial number: 1400007b
    Valid from: Mon Sep 24 14:38:53 MDT 2001 until: Sun Sep 24 14:38:53 ...
    Certificate fingerprints:
           MD5:  6F:63:51:C4:3D:92:C5:B9:A7:90:2F:FB:C0:68:66:16
           SHA1: D0:8D:7B:2D:06:AF:1F:37:5C:0D:1B:A0:B3:CB:A0:2E:90:D6:45:0C
    Trust this certificate? [no]:  yes
    Certificate was added to keystore

Java キーストアのパスワードの変更方法

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

  2. キーストアのパスワードを変更します。


    # /usr/j2se/bin/keytool -keystore /usr/j2se/jre/lib/security/
    cacerts
    Enter keystore password:  changeit
    New keystore password:  new-password
    Re-enter new keystore password:  new-password
    

パッチ環境の設定方法 (smpatch)

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

  2. パッチツールのディレクトリをパスに追加します。


    # PATH=/usr/sadm/bin:/opt/SUNWppro/bin:$PATH
    # export PATH
    
  3. (省略可能) システムのハードウェア構成を確認します。smpatch analyze コマンドは、このハードウェア構成に基づいて必要なパッチを特定します。


    # pprosetup -H
    
    Change Hardware Configuration.
    Analyzing this computer.
    ..............

    このコマンドで特定されるのは、Sun のネットワークストレージ製品だけです。

  4. システムに追加するパッチの種類を特定します。


    # pprosetup -i standard:singleuser:rebootafter:reconfigafter
    

    システムのデフォルトパッチポリシーが確立されます。

  5. (省略可能) システムに規約署名付きパッチを追加したい場合は、次の手順に従って SunSolve のユーザー名とパスワードを定義します。

    1. SunSolve ユーザー名を定義します。


      # pprosetup -u username
      
    2. SunSolve パスワードを定義します。次のファイルにパスワードを追加してください。


      /opt/SUNWppro/lib/.sunsolvepw
  6. パッチツールがシステムにパッチをダウンロードできるように、プロキシサーバーを特定します。

    1. システムがファイアウォールで保護されている場合は、patchpro.sun.com サーバーと、次のいずれかの Sun パッチサーバー (パッチのダウンロード用サーバー) にアクセスできるプロキシサーバーを定義する必要があります。

      • americas.patchmanager.sun.com (デフォルト)

      • emea.patchmanager.sun.com

      • japan.patchmanager.sun.com

    2. 次のコマンドで、プロキシサーバーを特定します。


      # pprosetup -x proxy-server:proxy-port
      

      たとえば、webaccess.corp.net.com をプロキシサーバーに指定する場合、次のように pprosetup コマンドを入力します。


      # pprosetup -x webaccess.corp.net.com:8080
      

次に進む手順

署名付きパッチの準備作業がすべて完了したら、パッチ管理ツールを使って署名付きパッチを追加します。

smpatch コマンドによる署名付きパッチの管理 (作業マップ)

作業 

説明 

参照先 

1. 署名付きパッチの準備作業を行う 

署名付きパッチの準備作業をすべて完了する 

  • 署名付きパッチツールのパッケージ要件を確認する

  • Solaris パッチ管理ツールをダウンロードし、インストールする

  • キーストアに Sun の証明書をインポートする

  • キーストアのパスワードを変更する

  • 署名付きパッチを追加できるようにシステムを設定する

smpatch コマンドで署名付きパッチを管理するための準備 (作業マップ)

2. 署名付きパッチ (1 つまたは複数) をダウンロードし、追加する 

smpatch コマンドを使って、署名付きパッチをダウンロードし、追加する

署名付きパッチをダウンロードし、追加する方法 (smpatch)

3. (省略可能) 署名付きパッチを削除する 

必要に応じて、署名のないパッチをシステムから削除する 

署名付きパッチを削除する方法 (smpatch)

署名付きパッチをダウンロードし、追加する方法 (smpatch)

  1. システムに署名付きパッチをダウンロードし、追加する前に、準備作業が完了していることを確認します。詳細については、smpatch コマンドで署名付きパッチを管理するための準備 (作業マップ)を参照してください。

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

  3. Solaris 9 システムのみ – Solaris 管理コンソールサーバーに、システムに PatchPro パッケージが追加されていることを通知します。


    # /etc/init.d/init.wbem stop
    # /etc/init.d/init.wbem start
    
  4. SunSolve の Web サイトから署名付きパッチ (1 つまたは複数) をダウンロードします。


    # smpatch download -i patch-ID
    
    Requested patches:
    
        patch-ID
    
    Downloading the requested patches
    
    /var/sadm/spool/patch-ID.jar has been validated.
    
    For downloaded patch(es) see /var/sadm/spool
  5. 署名付きパッチを追加します。


    # smpatch add -i patch-ID 
    

例 — 署名付きパッチをダウンロードし、追加する (smpatch)

次の例では、smpatch コマンドを使って、Solaris 9 システムに署名付きパッチをダウンロードし、追加します。


# /usr/sadm/bin/smpatch download -i 111711-01
Authenticating as user: root

ヘルプを参照するには /? を入力してください。Enter キーを押すと、
[ ] で囲まれたデフォルトが選択されます。
文字列の値を入力してください: password :: 
ツール com.sun.admin.patchmgr.cli.PatchMgrCli を starbag から読み込み中
ユーザー root として starbag にログインしました。
starbag から com.sun.admin.patchmgr.cli.PatchMgrCli 
がダウンロードされました。


        Requested patches:
                111711-01

        Downloading the requested patches ...


For downloaded patch(es) see /var/sadm/spool.
# smpatch add -i 111711-01
Authenticating as user: root

ヘルプを参照するには /? を入力してください。Enter キーを押すと、
[ ] で囲まれたデフォルトが選択されます。
文字列の値を入力してください: password :: 
ツール com.sun.admin.patchmgr.cli.PatchMgrCli を starbag から読み込み中
ユーザー root として starbag にログインしました。
starbag から com.sun.admin.patchmgr.cli.PatchMgrCli 
がダウンロードされました。

        On machine starbug ...
                Installing patch 111711-01
#

次の例では、smpatch コマンドを使って、Solaris 2.6 システムにパッチ 105081–45 をダウンロードし、追加します。


# smpatch download -i 105407-01

Requested patches:

    105407-01

Downloading the requested patches



/var/sadm/spool/105407-01.jar has been validated.

For downloaded patch(es) see /var/sadm/spool
# smpatch add -i 105407-01

On machine "earth/172.20.27.27" ...


Installing patch 105407-01 ...
Purging /var/sadm/spool/105407-01
/var/sadm/spool/README.txt has been moved to 
/var/sadm/spool/patchproSequester

次の例では、smpatch コマンドを使って、Solaris 7 システムにパッチ 107081–45 をダウンロードし、追加します。このパッチには、依存パッチが 2 つあります。依存パッチは自動的にダウンロードされ、検証されます。


# smpatch download -i 107081-45

Requested patches:

    107081-45

Downloading the requested patches

The following patches were added due to patch dependencies:
    108376-37
    107656-09

/var/sadm/spool/108376-37.jar has been validated.

/var/sadm/spool/107656-09.jar has been validated.

/var/sadm/spool/107081-45.jar has been validated.

For downloaded patch(es) see /var/sadm/spool
# smpatch add -i 108376-37 -i 107656-09 -i 107081-45

On machine "venus/172.20.27.26" ...

Installing patch 108376-37 ...
Installing patch 107656-09 ...
Installing patch 107081-45 ...
Purging /var/sadm/spool/108376-37
Purging /var/sadm/spool/107656-09
Purging /var/sadm/spool/107081-45

次の例では、ftp コマンドを使って、SunSolve Online の Web サイトから署名付きの Solaris 8 パッチをダウンロードします。その後、smpatch add コマンドを使って、このパッチをシステムに追加します。


# ftp sunsolve.sun.com
Connected to sunsolve.sun.com.
220-
220-Welcome to the SunSolve Online FTP server.
220-
220-Public users may log in as anonymous. 
.
.
.
Name (sunsolve.sun.com:root): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password: xxx
230-
230-SUN MICROSYSTEMS, INC.
.
.
.230 Guest login ok, access restrictions apply.
ftp> cd signed_patches
250 CWD command successful.
ftp> get 112846-01.jar /var/sadm/spool/112846-01.jar
200 PORT command successful.
150 Opening ASCII mode data connection for 112846-01.jar (22524 bytes).
226 Transfer complete.
local: /var/sadm/spool/112846-01 remote: 112846-01.jar
22613 bytes received in 0.065 seconds (341.70 Kbytes/s)
ftp> quit
# smpatch add -i 112846-01
On machine "earth/172.20.27.27" ...


Installing patch 112846-01 ...
Purging /var/sadm/spool/112846-01

署名付きパッチを削除する方法 (smpatch)

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

  2. 署名付きパッチを削除します。


    # smpatch remove -i patch-ID
    

    複数のパッチを 1 回のコマンドでまとめて削除することはできません。

例 — 署名付きパッチを削除する (smpatch)

次の例では、Solaris 9 を実行しているシステムから署名付きパッチを削除します。


# /usr/sadm/bin/smpatch remove -- -i 111711-01
Authenticating as user: root

ヘルプを参照するには /? を入力してください。Enter キーを押すと、
[ ] で囲まれたデフォルトが選択されます。
文字列の値を入力してください: password :: 
ツール com.sun.admin.patchmgr.cli.PatchMgrCli を starbag から読み込み中
ユーザー root として starbag にログインしました。
starbag から com.sun.admin.patchmgr.cli.PatchMgrCli 
がダウンロードされました。

          On machine starbug ...
                Removing patch 111711-01

次の例では、Solaris 2.6 を実行しているシステムから署名付きパッチを削除します。


# smpatch remove -i 105407-01

On machine "earth/172.20.27.27" ...

Removing patch 105407-01

Checking installed patches...

Backing out patch 105407-01...

Patch 105407-01 has been backed out.

署名付きパッチに関する問題の障害追跡 (smpatch)

署名付きパッチに関する問題の障害追跡やエラーメッセージの最新情報については、http://jp.sunsolve.Sun.COM/pub-cgi/show.pl?target=patches/spfaq を参照してください。

パッチツールのログファイルの表示

パッチ管理ツールのインストールや署名付きパッチの追加に関する問題は、システム上のさまざまなログファイルから特定できます。

デフォルトでは、PatchPro はシステムログファイルにメッセージを書き込みます。システムログファイルの場所は、syslog 構成ファイル /etc/syslog.conf で確認できます。PatchPro 構成ファイル /opt/SUNWppro/etc/patchpro.confpatchpro.log.file プロパティを更新することにより、PatchPro がローカルファイルシステム上の別のファイルにメッセージを書き込むように設定できます。

たとえば、/var/tmp/patchpro.log ファイルにメッセージを書き込むためには、patchpro.log.file プロパティの値を /var/tmp/patchpro.log に設定します。

次の表を使って、パッチ管理ツールや署名付きパッチのインストール時の障害情報を格納するログファイルを特定します。

ログファイル 

説明 

/var/tmp/ppro_install_log.nnn

PatchPro パッケージやパッチのインストールが成功したかどうかを示す 

/var/tmp/log/patchpro.log

さまざまなパッチツールで署名付きパッチを追加したときに発生した問題を示す 

/var/adm/messages

さまざまなパッチツールで署名付きパッチを追加したとき、またはパッチツールが正しく初期化されなかったときに発生した問題を示す 

Solaris 9 システム上の Solaris 管理コンソールのログビューア 

Solaris 管理コンソールのパッチツールを使って署名付きパッチを正しく追加できたかどうかを示す 

隔離されたパッチの解決方法

必須パッチを要求するパッチや、システムのリブートを必要とするパッチは、正しくインストールされないことがあります。PatchPro でインストールできないパッチは、/var/spool/pkg/patchproSequester ディレクトリに隔離されます。

パッチの README ファイルの REQUIRED PATCHES セクションに必須パッチが記載されているかどうかを確認してください。

パッチの README ファイルのコピーは、SunSolve Online の Web サイトから表示できます。JAR アーカイブから README ファイルを抽出することもできます。デジタル署名が改ざんされる恐れがあるため、JAR アーカイブは展開しないでください。パッチの README ファイルは、次の手順で安全に抽出できます。

パッチが正しくインストールされなかった原因を特定するため、/var/tmp/log/patchpro.log ファイルの内容も確認してください。

  1. /var/spool/pkg/patchproSequester ディレクトリの内容を表示して、パッチ (1 つまたは複数) がインストールされなかったことを確認します。


    # cd /var/spool/pkg/patchproSequester; ls
    
  2. JAR アーカイブから README ファイルを抽出します。

    1. まず、README ファイルの名前を特定します。次に例を示します。


      # /usr/j2se/bin/jar tvf 107058-01.jar | grep README
      
    2. 次に、README ファイルを抽出します。次に例を示します。


      # /usr/j2se/bin/jar xvf 107058-01.jar 107058-01/README.107058-01
      extracted: 107058-01/README.107058-01
  3. README ファイルを表示します。

    次に例を示します。


    # more 107058-01/README.107058-01
    

Java キーストアからインポート済みの証明書を削除する方法

PatchPro のインストール時に問題が発生した場合は、証明書をいったん削除してから、もう一度インポートすることをお勧めします。

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

  2. 以前にインポートした証明書を削除します。


    #/usr/j2se/bin/keytool -delete -alias smicacert -keystore 
    /usr/j2se/jre/lib/security/cacerts
    キーストアのパスワードを入力してください :  changeit
    # /usr/j2se/bin/keytool -delete -alias smirootcacert -keystore 
    /usr/j2se/jre/lib/security/cacerts
    キーストアのパスワードを入力してください :  changeit
    # /usr/j2se/bin/keytool -delete -alias patchsigning -keystore 
    /usr/j2se/jre/lib/security/cacerts
    キーストアのパスワードを入力してください :  changeit
    

署名のない Solaris パッチの管理 (作業マップ)

作業 

説明 

参照先 

1. (省略可能) 署名のないパッチの情報を表示する 

システムにインストール済みの署名のないパッチに関する情報を表示する 

Solaris パッチの情報を表示する方法

2. 署名のないパッチをダウンロードする 

署名のないパッチをシステムにダウンロードする 

署名のない Solaris パッチのダウンロード方法

3. 署名のないパッチを追加する 

署名のないパッチをシステムに追加する 

署名のない Solaris パッチの追加方法

4. (省略可能) 署名のないパッチを削除する 

必要に応じて、署名のないパッチをシステムから削除する 

smpatch コマンドによる署名付きパッチの管理 (作業マップ)

署名のない Solaris パッチの情報を表示する

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

表 25–1 Solaris パッチの管理用コマンド

コマンド 

説明 

patchadd -pshowrev -p

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

pkgparam pkgid PATCHLIST

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

patchadd -S Solaris-OS -p

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

Solaris パッチの情報を表示する方法

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


$ patchadd -p

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


$ patchadd -p | grep 111879

署名のない Solaris パッチの追加

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

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

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

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

署名のない Solaris パッチのダウンロード方法

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

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

  2. Web ブラウザを開き、SunSolve Online のサイトに移動します。


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

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

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

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

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

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

  4. 「このパッチ (n bytes) をダウンロードする HTTP FTP (Download Patch HTTP or FTP)」ボタンをクリックします。

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

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

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


    % unzip patch-ID-revision
    

署名のない Solaris パッチの追加方法

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

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


    # patchadd patch-ID-revision
    
  3. パッチが正常に削除されたことを確認します。


    # 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 パッチの削除

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

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

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

署名のない Solaris パッチを削除する方法

署名のない Solaris パッチを削除するには、patchrm コマンドを使用します。

  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
#