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

損傷を受けたソフトウェア製品を特定する方法 (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 パッケージがシステムにインストールされていないことがわかります。