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

Solaris Product Registry コマンド行インタフェースによるソフトウェアの表示および削除 (prodreg)

prodreg コマンドは、Solaris Product Registry のコマンド行インタフェース (CLI) です。prodreg コマンドは、システム上のソフトウェアを管理するための複数のサブコマンドをサポートしています。

端末ウィンドウで prodreg コマンドを実行して、次の作業を行うことができます。

コマンド行インタフェースから Solaris Product Registry を管理する方法については、prodreg(1M) のマニュアルページを参照してください。

インストール/アンインストールしたソフトウェアの情報を Solaris Product Registry を使って表示する方法 (prodreg CLI を使った作業)

Solaris Product Registry 内のソフトウェアに関する情報を確認するには、端末ウィンドウで prodreg コマンドのサブコマンド browse を実行します。

  1. 端末ウィンドウを開きます。

  2. Solaris Product Registry をブラウズします。


    % prodreg browse
        BROWSE # +/-/.  UUID                                  #  NAME
        ======== =====  ====================================  =  ============
        1        -      root                                  1  System 
                                                                 Registry
        2         +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                                 System 
                                                                 Software
        3         +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified
                                                                 Software

    prodreg コマンドのサブコマンド browse では、登録済みソフトウェアに関する次の情報を表示できます。

    BROWSE #

    prodreg browse コマンドを実行すると、Solaris Product Registry により、登録済みの各ソフトウェアコンポーネントのブラウズ番号が生成されます。この番号を prodreg browse コマンドや prodreg info コマンドの引数に指定することにより、登録済みの特定のコンポーネントの下位コンポーネントを表示できます。


    注 –

    ブラウズ番号 (BROWSE#) は、システムのリブートや再インストールによって変更される可能性があります。ブラウズ番号をスクリプト内に記述したり、その他のログインセッションで再利用したりすることはできません。


    +/-/.

    このフィールドは、ソフトウェアコンポーネントが Solaris Product Registry に登録された子コンポーネントを持っているかどうかを示します。このフィールドには、次の文字が表示されます。

    • + - ソフトウェアコンポーネントは、現在表示されていないが子コンポーネントを持っていることを示します。

    • - - ソフトウェアコンポーネントは、現在表示されている子コンポーネントを持っていることを示します。

    • . - ソフトウェアコンポーネントが子コンポーネントを持っていないことを示します。

    UUID

    このフィールドには、Solaris Product Registry に格納されているソフトウェア固有の識別子が表示されます。 

    #

    このフィールドには、システム上のソフトウェアコンポーネントのインスタンス番号が表示されます。システム上に複数のソフトウェアコンポーネントインスタンスがある場合、Solaris Product Registry はそれぞれのインスタンスに別々のインスタンス番号を割り当てます。 

    NAME

    このフィールドには、ソフトウェアの地域対応化された名前が表示されます。出力例では、Solaris オペレーティング環境の名前は「Solaris 9 4/03」になっています。 

  3. Solaris Product Registry 内の任意のソフトウェアコンポーネント 1 個の情報をブラウズします。


    % prodreg browse  -m "name"
    
    -m name

    name で名前を指定されたソフトウェアコンポーネントの情報を表示する

    システム上に name ソフトウェアのインスタンスが複数存在する場合は、次のコマンドを実行して Solaris Product Registry をブラウズします。


    % prodreg browse  -u name-UUID -i instance
    
    -u name-UUID

    一意の識別子 name-UUID で指定された name ソフトウェアコンポーネントの情報を表示する

    -i instance

    インスタンス番号 instance で指定された name ソフトウェアコンポーネントの情報を表示する

  4. ブラウズするそれぞれのソフトウェアコンポーネントに対して、手順 3 を繰り返します。

例 — コンポーネント名によるソフトウェア情報の表示

次の例では、コンポーネント名を指定してソフトウェア情報を表示します。


% prodreg browse
    BROWSE # +/-/.  UUID                                  #  NAME
    ======== =====  ====================================  =  ============
    1        -      root                                  1  System 
                                                             Registry
    2         +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                             System 
                                                             Software
    3         +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified
                                                             Software

% prodreg browse -m "Solaris 9 4/03 System Software"

例 — コンポーネントのブラウズ番号によるソフトウェア情報の表示

次の例では、prodreg browse コマンドの -n オプションでコンポーネントのブラウズ番号を指定して、ソフトウェアの情報を表示します。


% prodreg browse
    BROWSE # +/-/.  UUID                                  #  NAME
    ======== =====  ====================================  =  ============
    1        -      root                                  1  System 
                                                             Registry
    2         +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                             System 
                                                             Software
    3         +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified
                                                             Software

% prodreg browse -n 2

例 — コンポーネントの UUID によるソフトウェア情報の表示

次の例では、prodreg browse コマンドの -u オプションでコンポーネントの UUID を指定して、ソフトウェアの情報を表示します。


% prodreg browse
    BROWSE # +/-/.  UUID                                  #  NAME
    ======== =====  ====================================  =  ============
    1        -      root                                  1  System 
                                                             Registry
    2         +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                             System 
                                                             Software
    3         +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified
                                                             Software

% prodreg browse -u a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b

Product Registry を使ってソフトウェア属性を表示する方法 (prodreg CLI を使った作業)

prodreg info コマンドを使って、特定のソフトウェア属性を表示できます。prodreg info コマンドは、登録済みソフトウェアに関するさまざまな情報を表示します。次に例を挙げます。

  1. 端末ウィンドウを開きます。

  2. Solaris Product Registry をブラウズします。


    % prodreg browse
        BROWSE # +/-/.  UUID                                  #  NAME
        ======== =====  ====================================  =  ============
        1        -      root                                  1  System 
                                                                 Registry
        2         +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                                 System 
                                                                 Software
        3         +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified
                                                                 Software
  3. Solaris Product Registry 内の任意のソフトウェアコンポーネントの属性を表示します。

    prodreg info コマンドで出力された任意のソフトウェアコンポーネントの属性を表示できます。次のコマンドを使用します。


    % prodreg info  -m "name"
    
    -m name

    name で名前を指定されたソフトウェアコンポーネントの属性を表示する

  4. 表示するそれぞれのソフトウェアコンポーネントに対して、手順 3 を繰り返します。

例 — コンポーネント名によるソフトウェア属性の表示

次の例では、コンポーネント名を指定してソフトウェア属性を表示します。


% prodreg browse
    BROWSE # +/-/.  UUID                                  #  NAME
    ======== =====  ====================================  =  ============
    1        -      root                                  1  System 
                                                             Registry
    2         +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                             System 
                                                             Software
    3         +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified
                                                             Software

% prodreg info -m "Solaris 9 4/03 System Software"

例 — コンポーネントのブラウズ番号によるソフトウェア属性の表示

次の例では、prodreg info コマンドの -n オプションでコンポーネントのブラウズ番号を指定して、ソフトウェアの属性を表示します。


% prodreg browse
    BROWSE # +/-/.  UUID                                  #  NAME
    ======== =====  ====================================  =  ============
    1        -      root                                  1  System 
                                                             Registry
    2         +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                             System 
                                                             Software
    3         +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified
                                                             Software

% prodreg info -n 2

例 — コンポーネントの UUID によるソフトウェア属性の表示

次の例では、prodreg info コマンドの -u オプションでコンポーネントの UUID を指定して、ソフトウェア属性を表示します。


% prodreg browse
    BROWSE # +/-/.  UUID                                  #  NAME
    ======== =====  ====================================  =  ============
    1        -      root                                  1  System 
                                                             Registry
    2         +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                             System 
                                                             Software
    3         +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified
                                                             Software

% prodreg info -u a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b

ソフトウェアコンポーネント間の依存関係を確認する方法 (prodreg CLI を使った作業)

特定のソフトウェアコンポーネントに依存するコンポーネントを表示するには、prodreg info コマンドを使用します。特定のコンポーネントをアンインストールする前に、ソフトウェア製品間の依存関係を確認できます。

  1. 端末ウィンドウを開きます。

  2. Solaris Product Registry をブラウズします。


    % prodreg browse
        BROWSE # +/-/.  UUID                                  #  NAME
        ======== =====  ====================================  =  ============
        1        -      root                                  1  System 
                                                                 Registry
        2         +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                                 System 
                                                                 Software
        3         +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified
                                                                 Software

    Solaris Product Registry に確認するソフトウェアコンポーネントが表示されるまで prodreg browse コマンドを繰り返し実行します。prodreg browse コマンドを使って Solaris Product Registry をブラウズする方法については、インストール/アンインストールしたソフトウェアの情報を Solaris Product Registry を使って表示する方法 (prodreg CLI を使った作業)を参照してください。

  3. 特定のソフトウェアコンポーネントの依存関係を表示します。


    % prodreg info -m "name" -a "Dependent Components"
    
    -m name

    name で名前を指定されたソフトウェアコンポーネントの属性を表示する

    -a “Dependent Components”

    Dependent Components 属性の値を表示することにより、name ソフトウェアに依存するコンポーネントを表示する

    このコマンドは、name ソフトウェアに依存するソフトウェアコンポーネントの一覧を出力します。

例 — その他のソフトウェア製品に依存するコンポーネントの表示

次の例では、ExampleSoft というソフトウェア製品に依存するコンポーネントを一覧表示します。


% prodreg -m "ExampleSoft" -a "Dependent Components"
Dependent Components:
Name                         UUID                                  #
---------------------------  ------------------------------------  -
ExampleSoftA                 7f49ecvb-1ii2-11b2-a3f1-0800119u7e8e  1

損傷を受けたソフトウェア製品を特定する方法 (prodreg CLI を使った作業)

適切なアンインストーラを使用しないでインストール済みのソフトウェアファイルやパッケージを削除すると、システム上のソフトウェアが損傷を受ける可能性があります。損傷を受けたソフトウェアは、正しく機能しない場合があります。prodreg info コマンドを使って、ソフトウェア製品が損傷を受けていないかどうかを確認できます。

  1. 確認するソフトウェアの Solaris Product Registry 情報を表示します。


    % prodreg browse -m name
    BROWSE #  +/-/.  UUID                                  #  NAME
    ========  =====  ====================================  =  ============
    1         -      root                                  1  System 
                                                              Registry
    2          +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                              System
                                                              Software
    3          +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified 
                                                              Software
    4          -     name-UUID                              1  name
    233         .    component-a-pkg                           1  component-a
    234         .    component-b-pkg                           1
    -m name

    name で名前を指定されたソフトウェアコンポーネントの情報を表示する

    name-UUID

    name ソフトウェアコンポーネントの UUID を指定する

    component-a-pkg

    name ソフトウェアに依存する component-a コンポーネントのパッケージ名を指定する

    component-a

    name ソフトウェアに依存するコンポーネントの名前を指定する

    component-b-pkg

    name ソフトウェアに依存する component-b コンポーネントのパッケージ名を指定する

    前出の出力例では、Name 列に component-b-pkg エントリの名前が表示されていません。Solaris Product Registry にソフトウェアコンポーネント名が表示されない場合、そのコンポーネントは損傷を受けている可能性があります。

  2. ソフトウェアコンポーネントが損傷を受けていないかどうかを検証します。


    % prodreg info -u name-UUID -i 1 -d
    isDamaged=TRUE
    -u name-UUID

    name ソフトウェアコンポーネントの情報を表示する

    -i 1

    name ソフトウェアコンポーネントの 1 番目のインスタンスの情報を表示する

    -d

    name ソフトウェアコンポーネントの isDamaged 属性の値を表示する

    isDamaged=TRUE と出力された場合、name ソフトウェアコンポーネントは損傷を受けています。

  3. name-UUID ソフトウェアコンポーネントを構成するパッケージを特定します。


    % prodreg info -u name-UUID -i 1 -a PKGS
    pkgs:
    component-a-pkg component-b-pkg
    
  4. これらのパッケージがシステムにインストールされていることを確認します。


    % pkginfo component-a-pkg
    application component-a-pkg component-a
    
    % pkginfo component-b-pkg
    ERROR: information on "component-b-pkg" was not found

    pkginfo component-b-pkg コマンドのエラーメッセージは、component-b-pkg パッケージがシステムから削除されたことを示しています。name ソフトウェアコンポーネントは、component-b-pkg パッケージがないと正しく機能しない可能性があります。

例 — 損傷を受けたソフトウェアコンポーネントの特定

次の例では、ExampleSoft ソフトウェアが損傷を受けていないかどうかを確認します。


% prodreg browse -m Examplesoft
BROWSE #  +/-/.  UUID                                  #  NAME
========  =====  ====================================  =  ============
1         -      root                                  1  System 
                                                          Registry
2          +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                          System
                                                          Software
3          +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified 
                                                          Software
4          -     95842091-725a-8501-ef29-0472985982be  1  ExampleSoft
233         .    90209809-9785-b89e-c821-0472985982be  1  Example Doc
234         .    EXSOzzt                               1
235         .    EXSOblob                              1  Example Data

Solaris Product Registry の NAME 列で、ExampleSoft の子コンポーネント EXSOzzt のエントリがありません。ExampleSoft ソフトウェアは損傷を受けている可能性があります。prodreg info コマンドに - u-i、および -d オプションを指定して、ExampleSoft ソフトウェアが損傷を受けているかどうかを確認します。


% prodreg info -u 95842091-725a-8501-ef29-0472985982be -i 1 -d 
isDamaged=TRUE

前出のコマンドの出力結果から、ExampleSoft ソフトウェアが損傷を受けていることがわかります。prodreg info コマンドの -a PKGS オプションを実行して、ExampleSoft ソフトウェアパッケージを特定します。


% prodreg info 
     -u 95842091-725a-8501-ef29-0472985982be 
     -i 1 -a PKGS 
pkgs: 
EXSOzzt EXSOblob

pkginfo コマンドを実行して、システムに EXSOzzt および EXSOblob パッケージがインストールされていることを確認します。


% pkginfo EXSOzzt 
ERROR: information for "EXSOzzt" was not found 

% pkginfo EXSOblob
application EXSOblob       Example Data

pkginfo コマンドの出力結果から、EXSOzzt パッケージがシステムにインストールされていないことがわかります。

Solaris Product Registry からソフトウェアをアンインストールする方法 (prodreg CLI を使った作業)

prodreg uninstall コマンドを使って、システムからソフトウェアを削除できます。prodreg uninstall コマンドを使ってソフトウェアをアンインストールすると、指定のソフトウェアとそのソフトウェアに関連付けられている子コンポーネントがすべて削除されます。アンインストールするソフトウェアに依存するソフトウェアがないことを確認してから、ソフトウェアを削除してください。ソフトウェアの依存関係を確認する方法については、ソフトウェアコンポーネント間の依存関係を確認する方法 (prodreg CLI を使った作業)を参照してください。

ソフトウェアコンポーネントのアンインストールが完了したら、prodreg unregister -r コマンドを使って、ソフトウェアそのものと、その子コンポーネント全部を Solaris Product Registry から削除できます。

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

  2. アンインストールするソフトウェアの情報を表示します。


    # prodreg browse -u name-UUID
    BROWSE #  +/-/.  UUID                                  #  NAME
    ========  =====  ====================================  =  ============
    1         -      root                                  1  System 
                                                              Registry
    2          +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                              System
                                                              Software
    3          +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified 
                                                              Software
    1423       -     name-UUID                              1  name
    1436        .    component-a-UUID                          1  component-a
    1437        -    component-b-UUID                          1  component-b
    1462         .   component-c-UUID                          1  component-c
    
    -u name-UUID

    一意の識別子 name-UUID で指定されたソフトウェアコンポーネントの情報を表示する

    name

    一意の識別子 name-UUID でアンインストールするソフトウェアコンポーネントの名前を指定する

    . component-a-UUID

    name ソフトウェアによって必要とされているソフトウェアコンポーネント component-a の一意の識別子を指定する

    component-a

    name ソフトウェアによって必要とされているコンポーネントの名前を指定する

    - component-b-UUID

    name ソフトウェアによって必要とされているソフトウェアコンポーネント component-b の一意の識別子を指定する。ハイフン (-) は、component-b がその他のソフトウェアコンポーネントを必要としていることを表す

    component-b

    name ソフトウェアによって必要とされているソフトウェアコンポーネントの名前を指定する

    . component-c-UUID

    component-b ソフトウェアによって必要とされているソフトウェアコンポーネント component-c の一意の識別子を指定する

    component-c

    component-b ソフトウェアによって必要とされているソフトウェアコンポーネントの名前を指定する

  3. ソフトウェアをアンインストールします。


    # prodreg uninstall -u name-UUID 
    
  4. アンインストールするソフトウェアの依存関係を確認します。


    # prodreg info -u name-UUID
    Title: name
    .
    .
    .
    Child Components:
    Name                        UUID                                  #
    --------------------------  ------------------------------------  -
    component-a                    component-a-UUID                        1
    component-b                    component-b-UUID                        1
    
    Required Components:
    Name                        UUID                                  #
    --------------------------  ------------------------------------  -
    component-a                    component-a-UUID                        1
    component-b                    component-b-UUID                        1

    prodreg info コマンドによって出力された次の情報を確認します。

    • 「Child Components」– name ソフトウェアコンポーネントに関連付けられたソフトウェアコンポーネントを一覧表示します。name ソフトウェアの登録を解除すると、その子コンポーネントの登録も解除されます。前出の prodreg info コマンドでは、すべての子コンポーネントが一覧表示されます。これらの子コンポーネントの登録を解除してもよいかどうか確認してください。

    • 「Required Components」– name ソフトウェアによって必要とされているソフトウェアコンポーネントを一覧表示します。ソフトウェアコンポーネントは、子コンポーネント以外のコンポーネントを必要とする場合があります。コンポーネントとともにアンインストールされ、登録を解除されるのは、子コンポーネントだけです。

    • 「Dependent Components」– name ソフトウェアがないと実行できないコンポーネントを一覧表示します。name ソフトウェアの登録を解除すると、その依存コンポーネントの登録も解除されます。前出の prodreg info コマンドでは、すべての依存コンポーネントが一覧表示されます。これらの依存コンポーネントの登録を解除してもよいかどうか確認してください。

    前出の出力例では、name ソフトウェアに依存コンポーネントはありません。

  5. name ソフトウェアの子コンポーネントの依存関係を確認します。


    # prodreg info -u component-a-UUID -i 1 -a "Dependent Components"
    Dependent Components:
    Name                         UUID                                  #
    ---------------------------  ------------------------------------  -
    name                          name-UUID                             1
    
    # prodreg info -u component-b-UUID -i 1 -a "Dependent Components"
    Dependent Components:
    Name                         UUID                                  #
    ---------------------------  ------------------------------------  -
    name                          name-UUID                             1
    
    # prodreg info -u component-c-UUID -i 1 -a "Dependent Components"
    Dependent Components:
    Name                         UUID                                  #
    ---------------------------  ------------------------------------  -
    component-b                     component-b-UUID                        1

    前出の出力例では、name ソフトウェアの子コンポーネントに依存するソフトウェアはありません。

  6. ソフトウェアコンポーネントと子コンポーネントの登録を解除します。


    # prodreg unregister -r -u name-UUID -i 1
    
    -r

    一意の識別子 name-UUID を指定して、ソフトウェアとその子コンポーネント全部の登録を再帰的に解除する

    -u name-UUID

    登録を解除するソフトウェアを表す一意の識別子を指定する

    -i 1

    登録を解除するソフトウェアのインスタンスを指定する

例 — ソフトウェアコンポーネントのアンインストール

次の例では、ExampleSoft ソフトウェアとその子コンポーネントすべてをアンインストールします。


# prodreg browse -m "ExampleSoft"
BROWSE #  +/-/.  UUID                                  #  NAME
========  =====  ====================================  =  ============
1         -      root                                  1  System 
                                                          Registry
2          +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                          System
                                                          Software
3          +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified 
                                                          Software
1423       -     95842091-725a-8501-ef29-0472985982be  1  ExampleSoft
1436        .    90209809-9785-b89e-c821-0472985982be  1  Example Doc
1437        -    EXSOzzt                               1  Example Data
1462         .   EXSOblob                              1  Example Data

# prodreg uninstall -u 95842091-725a-8501-ef29-0472985982be -i 1

# prodreg info -u 95842091-725a-8501-ef29-0472985982be
Title: ExampleSoft Software
.
.
.
Child Components:
Name                        UUID                                  #
--------------------------  ------------------------------------  -
Example Doc                 90209809-9785-b89e-c821-0472985982be  1
Example Data                EXSOzzt                               1

Required Components:
Name                        UUID                                  #
--------------------------  ------------------------------------  -
Example Doc                 90209809-9785-b89e-c821-0472985982be  1
Example Data                EXSOzzt                               1

# prodreg info -u 90209809-9785-b89e-c821-0472985982be -i 1 
    -a "Dependent Components"
Dependent Components:
Name                         UUID                                  #
---------------------------  ------------------------------------  -
ExampleSoft                  95842091-725a-8501-ef29-0472985982be  1

# prodreg info -u EXSOzzt -i 1 -a "Dependent Components"
Dependent Components:
Name                         UUID                                  #
---------------------------  ------------------------------------  -
ExampleSoft                  95842091-725a-8501-ef29-0472985982be  1

# prodreg info -u EXSOblob -i 1 -a "Dependent Components"
Dependent Components:
Name                         UUID                                  #
---------------------------  ------------------------------------  -
Example Data                 EXSOzzt                               1

# prodreg unregister -r -u 95842091-725a-8501-ef29-0472985982be -i 1

損傷を受けたソフトウェアを Product Registry からアンインストールする方法 (prodreg CLI を使った作業)

損傷を受けたソフトウェアコンポーネントを prodreg uninstall コマンドでアンインストールしようとすると、失敗します。これは、ソフトウェアコンポーネントのアンインストールプログラムがシステムから削除されている場合に発生する現象です。

システム上にソフトウェアコンポーネントのアンインストールプログラムがない場合は、次の手順に従ってアンインストールを行なってください。

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

  2. アンインストールするソフトウェアの情報を表示します。


    # prodreg browse -m "name"
    BROWSE #  +/-/.  UUID                                  #  NAME
    ========  =====  ====================================  =  ============
    1         -      root                                  1  System 
                                                              Registry
    2          +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                              System
                                                              Software
    3          +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified 
                                                              Software
    4           -    UUID                                  1  name
    1436        .    component-a-UUID                         1  component-a
    1437        .    component-b-UUID                         1  
    -m name

    アンインストールする name ソフトウェアコンポーネントの 情報を表示する

    UUID

    アンインストールするソフトウェアコンポーネントの UUID を指定する

    . component-a-UUID

    component-a ソフトウェアコンポーネントの UUID を指定する

    component-a

    name ソフトウェアの子ソフトウェアコンポーネントの名前を指定する

    . component-b-UUID

    name ソフトウェアの子ソフトウェアコンポーネントの UUID を指定する

    前出の出力例では、component-b-UUID エントリにコンポーネント名が関連付けられていません。このように名前の値がない場合、このコンポーネントは損傷を受けている可能性があります。

  3. ソフトウェアをアンインストールします。


    # prodreg uninstall -u UUID -i 1
    The install program requested could not be found
    -u UUID

    アンインストールするソフトウェアコンポーネントの UUID を指定する

    -i 1

    アンインストールするソフトウェアのインスタンスを指定する

    前出のエラーメッセージは、システム上にアンインストールプログラムが存在しないことを示しています。

  4. ソフトウェアコンポーネントのアンインストールプログラムを特定します。


    # prodreg info -m "name" -a uninstallprogram
    uninstallprogram: /usr/bin/java -mx64m -classpath 
    uninstaller-location uninstall_name
    
    -m name

    name ソフトウェアコンポーネントの情報を表示する

    -a uninstallprogram

    name ソフトウェアコンポーネントに関連付けられたアンインストールプログラムの情報を表示する

    uninstaller-location

    name ソフトウェアコンポーネントのアンインストールプログラムの登録場所を指定する

  5. 登録場所にアンインストーラが存在するかどうか確認します。


    # ls uninstaller-location
    uninstaller-location:
    No such file or directory

    ls(1) コマンドの出力結果から、登録場所にアンインストールプログラムが存在しないことがわかります。

  6. システムからソフトウェアを削除します。

    次のいずれかの方法で削除できます。

    • システムのバックアップを使用できる場合は、次の手順に従います。

      1. バックアップからアンインストールプログラムをロードします。

      2. 端末ウィンドウなどのシェルコマンド行インタフェースからアンインストールプログラムを実行します。

    • バックアップのアンインストールプログラムにアクセスできない場合は、次の手順に従います。

      1. ソフトウェアコンポーネントの登録を解除します。


        # prodreg unregister -u UUID -i 1
        
      2. 削除するソフトウェアによって必要とされている登録済みコンポーネントをすべて削除します。


        # pkgrm component-a-UUID
        

例 — 損傷を受けたソフトウェアのアンインストール

次の例では、損傷を受けた ExampleSoft ソフトウェアをアンインストールします。この例では、システムバックアップ上のアンインストールプログラムにはアクセスできないものとします。


# prodreg browse -m Examplesoft
BROWSE #  +/-/.  UUID                                  #  NAME
========  =====  ====================================  =  ============
1         -      root                                  1  System 
                                                          Registry
2          +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                          System
                                                          Software
3          +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified 
                                                          Software
4          -     95842091-725a-8501-ef29-0472985982be  1  ExampleSoft
233         .    90209809-9785-b89e-c821-0472985982be  1  Example Doc
234         .    EXSOzzt                               1
235         .    EXSOblob                              1  Example Data

# prodreg uninstall -u 95842091-725a-8501-ef29-0472985982be -i 1
The install program requested could not be found

# prodreg info -m "ExampleSoft" -a uninstallprogram
uninstallprogram: /usr/bin/java -mx64m -classpath 
/var/sadm/prod/org.example.ExampleSoft/987573587 uninstall_ExampleSoft

# ls /var/sadm/prod/org.example.ExampleSoft/987573587
/var/sadm/prod/org.example.ExampleSoft/987573587:
No such file or directory

# prodreg unregister -u 95842091-725a-8501-ef29-0472985982be -i 1

# pkgrm EXSOblob

損傷を受けたソフトウェアコンポーネントを再インストールする方法 (prodreg CLI を使った作業)

損傷を受けたソフトウェアコンポーネントに依存するソフトウェアがある場合は、損傷を受けたコンポーネントを再インストールできます。損傷を受けたコンポーネントと依存ソフトウェアをアンインストールする必要はありません。prodreg unregister コマンドの -f オプションを実行して、損傷を受けたコンポーネントの登録を強制的に解除し、インストールし直します。

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

  2. 再インストールするソフトウェアの情報を表示します。


    # prodreg browse -m "name"
    BROWSE #  +/-/.  UUID                                  #  NAME
    ========  =====  ====================================  =  ============
    1         -      root                                  1  System 
                                                              Registry
    2          +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                              System
                                                              Software
    3          +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified 
                                                              Software
    4           .    UUID                                  1  name
    
    -m name

    再インストールする name ソフトウェアコンポーネントの情報を表示する

    UUID

    再インストールするソフトウェアコンポーネントの UUID を指定する

  3. 再インストールするソフトウェアに依存するソフトウェアを特定します。


    # prodreg info -m "name" -a "Dependent Components"
    Dependent Components:
    Name                         UUID                                  #
    ---------------------------  ------------------------------------  -
    component-a                     component-a-UUID                        1
    -m name

    再インストールするソフトウェアコンポーネントの名前を name で指定する

    -a “Dependent Components”

    name ソフトウェアに依存するコンポーネントを表示する

    component-a

    name ソフトウェアに依存するソフトウェアコンポーネントの名前を指定する

    component-a-UUID

    component-a ソフトウェアコンポーネントの UUID を指定する

    component-a ソフトウェアコンポーネントは、再インストールするソフトウェアに依存しています。component-a の登録を解除しないで name ソフトウェアを再インストールする場合は、name ソフトウェアの登録を強制的に解除したあと、name ソフトウェアを再インストールします。

  4. 再インストールするソフトウェアコンポーネントだけの登録を解除します。


    # prodreg unregister -f -u UUID
     
    
  5. ソフトウェアコンポーネントを再インストールします。


    # /usr/bin/java -cp /usr/installers/installer
    
    installer

    name ソフトウェアのインストールプログラムの名前を指定する

例 — 損傷を受けたソフトウェアコンポーネントの再インストール

次の例では、損傷を受けたソフトウェアコンポーネント ComponentSoft を、依存コンポーネントである ExampleSoft の登録解除やアンインストールを行うことなく再インストールします。


# prodreg browse -m "ComponentSoft"
BROWSE #  +/-/.  UUID                                  #  NAME
========  =====  ====================================  =  ============
1         -      root                                  1  System 
                                                          Registry
2          +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1  Solaris 9 4/03 
                                                          System
                                                          Software
3          +     8f64eabf-1dd2-11b2-a3f1-0800209a5b6b  1  Unclassified 
                                                          Software
4           .    86758449-554a-6531-fe90-4352678362fe  1  ComponentSoft

# prodreg info -m "ComponentSoft" -a "Dependent Components"
Dependent Components:
Name                         UUID                                  #
---------------------------  ------------------------------------  -
ExampleSoft                  95842091-725a-8501-ef29-0472985982be  1

# prodreg unregister -f -u 86758449-554a-6531-fe90-4352678362fe -i 1

# /usr/bin/java -cp /usr/installers/org.example.componentsoft