Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)

第 26 章 ゾーンがインストールされている Solaris システムでのパッケージとパッチの追加および削除 (手順)

Solaris 10 1/06: このリリースでは、この章は全面的に改訂されています。この章では、非大域ゾーンがインストールされているシステムで最新のパッケージとパッチを追加および削除する手順について説明します。

Solaris 10 6/06: 「パッケージを大域ゾーンだけに追加する方法」の手順に注が追加されました。

Solaris 10 8/07: 「大域ゾーンだけにパッチを適用する方法」の手順から注が削除されました。

Solaris 10 の新機能の全一覧および Solaris リリースについての説明は、『Oracle Solaris 10 9/10 の新機能』を参照してください。

この章では、ゾーンがインストールされているシステムでパッケージとパッチを追加および削除する方法について説明します。パッケージパラメータの設定やパッケージ情報の取得など、パッケージとパッチの管理に関連したほかの作業についても説明します。ゾーンがインストールされているシステムでのパッチおよびパッケージの概念に関する概要は、第 25 章ゾーンがインストールされている Solaris システムでのパッケージとパッチについて (概要)を参照してください。

ゾーンがインストールされている Solaris システムでのパッケージとパッチの追加および削除 (作業マップ)

タスク 

説明 

説明 

パッケージを追加します。 

ゾーンがインストールされているシステムでパッケージを追加します。 

「ゾーンがインストールされている Solaris システムでのパッケージの追加」

パッケージ情報を検査します。 

ゾーンがインストールされているシステムでパッケージ情報を検査します。 

「ゾーンがインストールされている Solaris システムでのパッケージ情報の検査」

パッケージを削除します。 

ゾーンがインストールされているシステムでパッケージを削除します。 

「ゾーンがインストールされている Solaris システムからパッケージを削除する」

パッチを適用します。 

ゾーンがインストールされているシステムでパッチを適用します。 

「ゾーンがインストールされている Solaris システムへのパッチの適用」

パッチを削除します。 

ゾーンがインストールされているシステムでパッチを削除します。 

「ゾーンがインストールされているシステムでのパッチの削除」

(省略可能) パッケージパラメータの設定を検査します。 

パッケージを追加または削除する際、パッケージパラメータの設定が実行する操作をサポートしていることを確認します。 

「ゾーンがインストールされているシステムでのパッケージパラメータ設定の検査」

ゾーンがインストールされている Solaris システムでのパッケージの追加

pkgadd(1M) のマニュアルページで説明しているように、pkgadd システムユーティリティーを使用すると、次の作業を実行できます。

パッケージを追加する場合、SUNW_PKG_ALLZONES および SUNW_PKG_HOLLOW パッケージパラメータ設定は、true または false のいずれか適正な値でなければなりません。ほかの値が設定されている場合、意図した結果を得ることができません。パッケージパラメータ設定の効果に関する詳細は、「パッケージとゾーンについて」を参照してください。これらのパッケージパラメータ設定の検査方法については、「ゾーンがインストールされているシステムでのパッケージパラメータ設定の検査」を参照してください。

Procedureパッケージを大域ゾーンだけに追加する方法

パッケージを大域ゾーンだけに追加する場合、SUNW_PKG_ALLZONES パッケージパラメータが false に設定されている必要があります。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーン内で、pkgadd -d コマンドに続けてパッケージの場所、-G オプション、およびパッケージ名を指定して実行します。

    • CD-ROM からパッケージをインストールする場合は、次のように入力します。


      global# pkgadd -d /cdrom/cdrom0/directory -G package_name
      
    • そのパッケージが既にコピーされているディレクトリからパッケージをインストールする場合は、次のように入力します。


      global# pkgadd -d disk1/image -G package_name
      

      ここで、disk1 にはパッケージのコピー先の場所を指定します。


    注 –

    pkgadd ユーティリティーを -G オプションを指定せずに実行し、かつ SUNW_PKG_THISZONE=true であった場合、指定されたパッケージはデフォルトで現在のゾーン (大域ゾーン) に追加されます。


Procedureパッケージを大域ゾーンとすべての非大域ゾーンに追加する方法

この手順では、pkgadd にオプション -G を指定しないでください。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーン内で、pkgadd -d コマンドに続けてパッケージの場所とパッケージ名を指定して実行します。

    • CD-ROM からパッケージをインストールする場合は、次のように入力します。


      global# pkgadd -d /cdrom/cdrom0/directory package_name
      
    • そのパッケージが既にコピーされているディレクトリからパッケージをインストールする場合は、次のように入力します。


      global# pkgadd -d disk1/image package_name
      

      ここで、disk1 にはパッケージのコピー先の場所を指定します。

Procedure大域ゾーンにインストールしたパッケージをすべての非大域ゾーンに追加する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーンで、pkgrm を使ってパッケージを削除します。

  3. -G オプションを指定せずにパッケージを追加します。

Procedure指定された非大域ゾーンだけにパッケージを追加する方法

指定された非大域ゾーンだけにパッケージを追加する場合、SUNW_PKG_ALLZONES パッケージパラメータが false に設定されている必要があります。この手順では、pkgadd-G オプションを指定しないでください。

この手順を実行するには、非大域ゾーン内のゾーン管理者になる必要があります。

  1. ゾーン管理者として非大域ゾーンにログインします。

  2. 非大域ゾーン (この手順では my-zone) 内で、pkgadd -d コマンドに続けてパッケージの場所、およびパッケージ名を指定して実行します。

    • CD-ROM からパッケージをインストールする場合は、次のように入力します。


      my-zone# pkgadd -d /cdrom/cdrom0/directory package_name
      
    • そのパッケージが既にコピーされているディレクトリからパッケージをインストールする場合は、次のように入力します。


      my-zone# pkgadd -d disk1/image package_name
      

      ここで、disk1 にはパッケージのコピー先の場所を指定します。

ゾーンがインストールされている Solaris システムでのパッケージ情報の検査

pkginfo コマンドを実行することで、大域ゾーンや非大域ゾーンのソフトウェアパッケージデータベースを照会できます。このコマンドの詳細は、pkginfo(1) のマニュアルページを参照してください。

Procedure大域ゾーンだけでパッケージ情報を検査する方法

  1. 大域ゾーンだけのソフトウェアパッケージデータベースを検査する場合、pkginfo に続けてパッケージ名を指定します。


    global% pkginfo package_name
    

例 26–1 大域ゾーンで pkginfo コマンドを使用する


global% pkginfo SUNWcsr SUNWcsu
system      SUNWcsr Core Solaris, (Root)
system      SUNWcsu Core Solaris, (Usr)

Procedure指定された非大域ゾーンだけのパッケージ情報を検査する方法

  1. 指定された非大域ゾーンのソフトウェアパッケージデータベースを検査する場合は、非大域ゾーンにログインし、pkginfo に続けてパッケージ名を指定します。


    my-zone% pkginfo package_name
    

例 26–2 非大域ゾーンで pkginfo コマンドを使用する


my-zone% pkginfo SUNWcsr SUNWcsu
system      SUNWcsr Core Solaris, (Root)
system      SUNWcsu Core Solaris, (Usr)

ゾーンがインストールされている Solaris システムからパッケージを削除する

pkgrm(1M) のマニュアルページで説明しているように、pkgrm システムユーティリティーを使用すると、次の作業を実行できます。

パッケージを削除する場合、SUNW_PKG_ALLZONES および SUNW_PKG_HOLLOW パッケージパラメータ設定は、true または false のいずれか適正な値でなければなりません。ほかの値が設定されている場合、意図した結果を得ることができません。パッケージパラメータ設定の効果に関する詳細は、「パッケージとゾーンについて」を参照してください。これらのパッケージパラメータ設定の検査方法については、「ゾーンがインストールされているシステムでのパッケージパラメータ設定の検査」を参照してください。

Procedure大域ゾーンとすべての非大域ゾーンからパッケージを削除する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーン内で、pkgrm コマンドに続けてパッケージ名を指定します。


    global# pkgrm package_name
    

Procedure指定された非大域ゾーンだけからパッケージを削除する方法

指定された非大域ゾーンだけからパッケージを削除する場合、SUNW_PKG_ALLZONES パッケージパラメータを false に設定する必要があります。

この手順を実行するには、非大域ゾーン内のゾーン管理者になる必要があります。

  1. ゾーン管理者として非大域ゾーンにログインします。

  2. 非大域ゾーン (この手順では my-zone) 内で、pkgrm コマンドに続けてパッケージ名を指定して実行します。


    my-zone# pkgrm package_name
    

ゾーンがインストールされている Solaris システムへのパッチの適用

patchadd(1M) のマニュアルページで説明しているように、patchadd システムユーティリティーを使用すると、次の作業を実行できます。

Procedure大域ゾーンだけにパッチを適用する方法


注 –

Solaris 10 3/05 から Solaris 10 11/06: pkgadd コマンドに -G オプションを指定して追加されたパッケージにパッチを適用する場合は、patchadd コマンドに -G オプションを指定してパッチを適用する必要があります。この制限は Solaris 8/07 リリースで削除されています。


この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. patchadd コマンドに続けて -G オプションとパッチ ID を指定して実行します。


    global# patchadd -G patch_id
    

Procedure大域ゾーンとすべての非大域ゾーンにパッチを適用する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

「Solaris 10 10/09: パッチ適用時間を短縮するためのゾーンの並列パッチ」』および『「Solaris 10 10/09: 非大域ゾーンに並列でパッチを適用する方法」』も参照してください。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. patchadd コマンドに続けてパッチ ID を指定して実行します。


    global# patchadd patch_id
    

Procedure指定された非大域ゾーンだけにパッチを適用する方法

指定された非大域ゾーンだけにパッチを適用するには、パッチセット内のすべてのパッケージの SUNW_PKG_ALLZONES パッケージパラメータが false に設定されている必要があります。

この手順を実行するには、非大域ゾーン内のゾーン管理者になる必要があります。

  1. ゾーン管理者として非大域ゾーンにログインします。

  2. 非大域ゾーン (この手順では my-zone) 内で、patchadd コマンドに続けてパッチ ID を指定して実行します。


    my-zone# patchadd patch_id
    

ProcedureSolaris 10 10/09: 非大域ゾーンに並列でパッチを適用する方法

patchadd 構成ファイル /etc/patch/pdo.conf に、並列でパッチを適用する非大域ゾーンの数を設定します。大域ゾーンへのパッチの適用が終了した時点で、num_proc= に設定されている数の非大域ゾーンに対して一緒にパッチの適用が行われます。

Solaris 10 10/09 より前のリリースを実行している場合は、パッチ 119254-66 以降のリビジョン (SPARC) または 119255-66 以降のリビジョン (x86) をダウンロードします。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. (省略可能、Solaris 10 10/09 より前のリリースのみ必要) パッチ 119254-66 (SPARC) または 119255-66 (x86) をダウンロードします。

  3. /etc/patch/pdo.conf ファイルに、オンライン CPU が 4 つあるシステム上で、並列でパッチを一緒に適用する 6 つの非大域ゾーンを設定します。


    num_proc=6

    システム上に 6 つを超える非大域ゾーンがある場合は、まず最初の 6 つに並列でパッチが適用され、最初の 6 つの非大域ゾーンへのパッチの適用プロセスが終了したら、残りの非大域ゾーンにパッチが適用されます。

ゾーンがインストールされているシステムでのパッチの削除

patchrm(1M) のマニュアルページで説明しているように、patchrm システムユーティリティーを使用すると、次の作業を実行できます。

Procedure大域ゾーンとすべての非大域ゾーンからパッチを削除する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. patchrm コマンドに続けてパッチ ID を指定して実行します。


    global# patchrm patch_id
    

Procedure指定された非大域ゾーンだけからパッチを削除する方法

指定された非大域ゾーンだけからパッチを削除するには、パッチセット内のすべてのパッケージの SUNW_PKG_ALLZONES パッケージパラメータが false に設定されている必要があります。

この手順を実行するには、非大域ゾーン内のゾーン管理者になる必要があります。

  1. ゾーン管理者として非大域ゾーンにログインします。

  2. 非大域ゾーン (この手順では my-zone) 内で、patchrm コマンドに続けてパッチ ID を指定して実行します。


    my-zone# patchrm patch_id
    

ゾーンがインストールされているシステムでのパッケージパラメータ設定の検査

ソフトウェアパッケージを追加または削除する前に、pkgparam コマンドを使用してパッケージパラメータ設定を検査できます。この手順は省略可能です。パッケージが意図したとおりに追加または削除されない場合の障害追跡にも、この検査は使用できます。パッケージのパラメータ値の表示については、pkgparam(1) のマニュアルページを参照してください。

Procedure(省略可能) システムにインストールされたパッケージの設定を検査する方法

  1. 大域ゾーンまたは非大域ゾーンにインストール済みのパッケージのパッケージパラメータ設定を検査する場合、pkgparam に続けてパッケージ名およびパラメータ名を指定します。


    my-zone% pkgparam package_name SUNW_PKG_ALLZONES
    true
    my-zone% pkgparam package_name SUNW_PKG_HOLLOW
    false

Procedure(省略可能) CD-ROM に収録されたソフトウェア内のパッケージの設定を検査する方法

  1. CD-ROM に収録されているソフトウェア内のアンインストール済みパッケージのパッケージパラメータを検査する場合、pkgparam -d に続けて CD-ROM のパス、パッケージ名、およびパラメータ名を指定します。


    my-zone% pkgparam -d /cdrom/cdrom0/directory package_name SUNW_PKG_ALLZONES
    true
    my-zone% pkgparam -d /cdrom/cdrom0/directory package_name SUNW_PKG_HOLLOW 
    false