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

損傷を受けたソフトウェアをアンインストールする方法 (prodreg)

損傷を受けたソフトウェアコンポーネントを 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 8/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
        

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

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


# prodreg browse -m Examplesoft
BROWSE #  +/-/.  UUID                                  #  NAME
========  =====  ====================================  =  ============
1         -      root                                  1  System 
                                                          Registry
2          +     a01ee8dd-1dd1-11b2-a3f2-0800209a5b6b  1   Solaris 9 8/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