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

第 22 章 Oracle Solaris パッケージコマンドによるソフトウェアの管理 (手順)

この章では、Oracle Solaris パッケージコマンドを使ってソフトウェアパッケージを追加、確認、および削除する方法について説明します。

各作業の実行に関連する手順については、以下の作業マップを参照してください。

pkgadd コマンドによる署名付きパッケージの追加および削除 (作業マップ)

次の作業マップは、署名付きパッケージコマンドを使って実行可能なソフトウェア管理作業を示したものです。


注 –

pkgadd コマンドを使用して署名付きパッケージを追加および削除するプロセスには、信頼される証明書を keytool ユーティリティーを使用して取得および適用する作業が含まれます。Oracle Solaris のこのリリースでの keytool ユーティリティーの使用に関連する手順については、この章では詳しく説明していません。keytool ユーティリティーを使用して信頼される証明書をインポートおよびエクスポートする詳細な手順については、http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/tooldocs/solaris/keytool.html を参照してください。


作業 

説明 

参照先 

1 つ以上の証明書の詳細情報を表示します。 

pkgadm listcert コマンドを使って証明書の詳細情報を表示できます。

「証明書の情報を表示する方法 (pkgadm listcert)」

証明書を削除します。 

pkgadm removecert コマンドを使って証明書を削除できます。

「証明書を削除する方法 (pkgadm removecert)」

プロキシサーバーをセットアップします。 

この手順は、プロキシを備えたファイアウォールの背後にシステムが存在している場合に使用します。 

「プロキシサーバーをセットアップする方法 (pkgadd)」

署名付きパッケージを追加します。 

ルート証明書がインポートされると、pkgadd コマンドを使って署名付きパッケージを追加できます。

「署名付きパッケージを追加する方法 (pkgadd)」

pkgadd コマンドによる署名付きパッケージの追加および削除

次の手順では、pkgadd コマンドを使って署名付きパッケージを追加および削除する方法について説明します。

Procedure証明書の情報を表示する方法 (pkgadm listcert)

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. パッケージキーストアの内容を表示します。


    # pkgadm listcert -p passarg
    

例 22–1 証明書の情報を表示する

次の例は、ローカルに格納されている証明書の詳細情報を表示する方法を示しています。


# pkgadm listcert -P pass:test123
Keystore Alias: /C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O
        Common Name: /C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O
   Certificate Type: Trusted Certificate
Issuer Common Name: /C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O
Validity Dates: <May 18 00:00:00 1998 GMT> - <Aug 1 23:59:59 2028 GMT>
 MD5 Fingerprint: 2D:BB:E5:25:D3:D1:65:82:3A:B7:0E:FA:E6:EB:E2:E1
   SHA1 Fingerprint: B3:EA:C4:47:76:C9:C8:1C:EA:F2:9D:95:B6:CC:A0:08:1B:67:EC:9D 

Procedure証明書を削除する方法 (pkgadm removecert)

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 信頼される証明書をパッケージキーストアから削除します。


    # pkgadm removecert -n "certfile
    "
    

    removecert-ncertfile” オプションには、ユーザー証明書/鍵ペアの別名、信頼される証明書の別名のいずれかを指定します。


    注 –

    証明書の別名を表示するには、pkgadm listcert コマンドを使用します。



例 22–2 証明書を削除する

次の例は、証明書を削除する方法を示しています。


# pkgadm listcert
    Keystore Alias: /C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O
        Common Name: /C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O
   Certificate Type: Trusted Certificate
Issuer Common Name: /C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O
Validity Dates: <May 18 00:00:00 1998 GMT> - <Aug 1 23:59:59 2028 GMT>
 MD5 Fingerprint: 2D:BB:E5:25:D3:D1:65:82:3A:B7:0E:FA:E6:EB:E2:E1
   SHA1 Fingerprint: B3:EA:C4:47:76:C9:C8:1C:EA:F2:9D:95:B6:CC:A0:08:1B:67:EC:9D 
# pkgadm removecert -n "/C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O"

Enter Keystore Password: storepass
Successfully removed Certificate(s) with alias \
</C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O>

Procedureプロキシサーバーをセットアップする方法 (pkgadd)

プロキシを備えたファイアウォールの背後にシステムが存在している場合、先にプロキシサーバーをセットアップします。そのあとに、pkgadd コマンドを使用して HTTP サーバーからパッケージを追加します。

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次のいずれかの方法を使ってプロキシサーバーを指定します。

    1. 環境変数 http_proxyHTTPPROXYHTTPPROXYPORT のいずれかを使ってプロキシサーバーを指定します。

      次に例を示します。


      # setenv http_proxy http://mycache.domain:8080
      

      または、次のいずれかを指定します。


      # setenv HTTPPROXY mycache.domain
      # setenv HTTPPROXYPORT 8080
      
    2. pkgadd コマンド行でプロキシサーバーを指定します。

      次に例を示します。


      # pkgadd -x mycache.domain:8080 
      -d http://myserver.com/pkg SUNWpkg
      
    3. プロキシサーバーの情報を含む管理ファイルを作成します。

      次に例を示します。


      # cat /tmp/admin
      mail=
      instance=unique
      partial=ask
      runlevel=ask
      idepend=ask
      rdepend=ask
      space=ask
      setuid=ask
      conflict=ask
      action=ask
      networktimeout=60
      networkretries=3
      authentication=quit
      keystore=/var/sadm/security
      basedir=default
      proxy=mycache.domain:8080
      

      続いて、pkgadd -a コマンドでこの管理ファイルを指定します。次に例を示します。


      # pkgadd -a /tmp/admin -d http://myserver.com/pkg SUNwpkg
      

Procedure署名付きパッケージを追加する方法 (pkgadd)

この手順では、Oracle のルート CA 証明書が、すでにインポートされているものと仮定しています。詳細は、http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/tooldocs/solaris/keytool.html を参照してください。

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 署名付きパッケージを追加します。


    # pkgadd -d /pathname/device-name
    

    -d device-name オプションには、パッケージのインストール元デバイスを指定します。デバイスとして指定できるのは、ディレクトリ、テープ、フロッピーディスク、リムーバブルディスクのいずれかです。また、pkgtrans コマンドによって作成されたデータストリームをデバイスとして指定することもできます。


例 22–3 署名付きパッケージを追加する

次の例は、システム上に格納された署名付きパッケージを追加する方法を示しています。


# # pkgadd -d /tmp/signed_pppd
The following packages are available:
  1  SUNWpppd     Solaris PPP Device Drivers
                  (sparc) 11.10.0,REV=2003.05.08.12.24

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
Enter keystore password:
## Verifying signature for signer <User Cert 0>

.
.
.

次の例は、デバイス名として HTTP URL を指定して署名付きパッケージをインストールする方法を示しています。指定した URL は、ストリーム形式のパッケージを指している必要があります。


# pkgadd -d http://install/signed-video.pkg

## Downloading...
..............25%..............50%..............75%..............100%
## Download Complete
.
.
.

パッケージコマンドによるソフトウェアパッケージの管理 (作業マップ)

次の作業マップは、署名付きパッケージと署名なしパッケージの両方に対して、パッケージコマンドで行えるソフトウェア管理作業を示したものです。

作業 

説明 

参照先 

ソフトウェアパッケージをローカルシステムに追加します。 

pkgadd コマンドを使ってソフトウェアパッケージをローカルシステムに追加できます。

「ソフトウェアパッケージを追加する方法 (pkgadd)」

ソフトウェアパッケージをスプールディレクトリに追加します。 

ソフトウェアを実際にインストールしないで、ソフトウェアパッケージをスプールディレクトリに追加できます。 

「ソフトウェアパッケージをスプールディレクトリに追加する」

インストールされたすべてのソフトウェアパッケージに関する情報を表示します。 

pkginfo コマンドを使用して、インストール済みのパッケージに関する情報を表示できます。

「インストール済みのすべてのパッケージに関する情報を表示する方法 (pkginfo)」

インストールされたソフトウェアパッケージの整合性を検査します。 

pkgchk コマンドを使って、インストールされたソフトウェアパッケージの整合性を検査できます。

「インストール済みのソフトウェアパッケージの整合性を検査する方法 (pkgchk)」

インストール済みオブジェクトの整合性を検査します。 

pkchk コマンドでオプション -p または -P を指定すると、インストールされたオブジェクトの整合性を検証できます。-p オプションには絶対パス名を指定します。新しい -P オプションには部分パス名を指定します。

「インストール済みオブジェクトの整合性を検査する方法 (pkgchk -p、pkgchk -P)」

ソフトウェアパッケージを削除します。 

pkgrm コマンドを使って不要になったソフトウェアパッケージを削除できます。

「ソフトウェアパッケージを削除する方法 (pkgrm)」

パッケージコマンドによるソフトウェアパッケージの管理

次の手順では、パッケージコマンドを使ってソフトウェアパッケージを管理する方法を説明します。

Procedureソフトウェアパッケージを追加する方法 (pkgadd)

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. インストール済みのパッケージの中で、追加しようとしているものと同じ名前のものがあれば、すべて削除します。

    この手順によって、追加および削除されたソフトウェアの正しい記録が取れます。同じアプリケーションの複数のバージョンをシステムで管理する場合もあります。ソフトウェアの複数のコピーを管理する方法については、「パッケージの削除に関するガイドライン (pkgrm)」を参照してください。この作業の手順については、「ソフトウェアパッケージを削除する方法 (pkgrm)」を参照してください。

  3. ソフトウェアパッケージをシステムに追加します。


    # pkgadd -a admin-file 
    -d device-name pkgid ...
    -a admin-file

    (省略可能) インストール時に pkgadd コマンドが確認する管理ファイルを示します。管理ファイルの使用方法については、「管理ファイルの使用」を参照してください。

    -d device-name

    ソフトウェアパッケージのあるディレクトリの絶対パスを指定します。device-name には、デバイス、ディレクトリ、またはスプールディレクトリへのパスを指定できます。パッケージのあるパスを指定しないと、pkgadd コマンドはデフォルトのスプールディレクトリ (/var/spool/pkg) をチェックします。パッケージがそこにない場合、パッケージのインストールは失敗します。

    pkgid

    (省略可能) インストールする 1 つまたは複数のパッケージの名前を空白で区切って指定します。省略した場合、pkgadd コマンドは、指定されたデバイス、ディレクトリ、またはスプールディレクトリで利用可能なすべてのパッケージをインストールします。

    パッケージのインストール中に pkgadd コマンドによって問題が検出されると、その問題に関連するメッセージに続いて、次のプロンプトが表示されます。


    Do you want to continue with this installation?

    このプロンプトには、yesno、または quit のいずれかで応答します。複数のパッケージを指定した場合は、no と入力して、インストール中のパッケージのインストールを中止してください。ほかのパッケージのインストールが続行されます。インストールを中止するには、quit と入力してください。

  4. 指定したパッケージが正常にインストールされていることを確認します。


    # pkgchk -v pkgid
    

    エラーがない場合は、インストールされたファイルのリストが返されます。エラーがある場合は、pkgchk コマンドによってエラーが報告されます。


例 22–4 マウント済みの CD からソフトウェアパッケージを追加する

次の例は、マウント済みの Oracle Solaris 10 CD から SUNWpl5u パッケージをインストールする方法を示しています。また、パッケージファイルが正しくインストールされているかどうかを確認する方法も示します。


# pkgadd -d /cdrom/cdrom0/Solaris_10/Product SUNWpl5u

	.
	.
	.
Installation of <SUNWpl5u> was successful.
# pkgchk -v SUNWpl5u
/usr
/usr/bin
/usr/bin/perl
/usr/perl5
/usr/perl5/5.8.4
.
.
.

この例は、Solaris 10 10/08 リリース以上を実行していない場合に使用するパスを示しています。


# pkgadd -d /cdrom/cdrom0/s0/Solaris_10/Product SUNWpl5u

	.
	.
	.
Installation of <SUNWpl5u> was successful.
# pkgchk -v SUNWpl5u
/usr
/usr/bin
/usr/bin/perl
/usr/perl5
/usr/perl5/5.8.4
.
.
.


例 22–5 リモートパッケージサーバーからソフトウェアパッケージをインストールする

インストールするパッケージがリモートシステムから利用できる場合は、そのパッケージが (パッケージ形式で) 格納されているディレクトリを手動でマウントして、ローカルシステムにパッケージをインストールすることができます。

次の例は、リモートシステムからソフトウェアパッケージをインストールする方法を示しています。この例では、package-server というリモートシステムの /latest-packages ディレクトリにソフトウェアパッケージが格納されているものとします。mount コマンドはパッケージをローカルの /mnt 上にマウントします。pkgadd コマンドは SUNWpl5u パッケージをインストールします。


# mount -F nfs -o ro package-server:/latest-packages /mnt
# pkgadd -d /mnt SUNWpl5u
	.
	.
	.
Installation of <SUNWpl5u> was successful.

オートマウンタがサイトで実行されている場合は、リモートパッケージサーバーを手動でマウントする必要はありません。代わりに、オートマウンタパス (この場合は /net/package-server/latest-packages) を、-d オプションの引数として使用します。


# pkgadd -d /net/package-server/latest-packages SUNWpl5u
	.
	.
	.
Installation of <SUNWpl5u> was successful.


例 22–6 管理ファイルを指定してリモートパッケージサーバーからソフトウェアパッケージをインストールする

この例は、前の例に似ていますが、-a オプションを使って noask-pkgadd という管理ファイルを指定している点が異なります。この管理ファイルについては、「パッケージ追加時のユーザーの対話操作を省略する (pkgadd)」を参照してください。この例では、noask-pkgadd 管理ファイルがデフォルトの格納場所である /var/sadm/install/admin にあるものとします。


# pkgadd -a noask-pkgadd -d /net/package-server/latest-packages SUNWpl5u

	.
	.
	.
Installation of <SUNWpl5u> was successful.


例 22–7 ソフトウェアパッケージを特定の HTTP URL からインストールする

次の例は、特定の HTTP URL をデバイス名として使ってパッケージをインストールする方法を示しています。指定した URL は、ストリーム形式のパッケージを指している必要があります。


# pkgadd -d http://install/xf86-4.3.0-video.pkg

## Downloading...
..............25%..............50%..............75%..............100%
## Download Complete


The following packages are available:
  1  SUNWxf86r     XFree86 Driver Porting Kit (Root)
                   (i386) 4.3.0,REV=0.2003.02.28
  2  SUNWxf86u     XFree86 Driver Porting Kit (User)
                   (i386) 4.3.0,REV=0.2003.02.28

.
.
.

ソフトウェアパッケージをスプールディレクトリに追加する

頻繁にインストールするパッケージをスプールディレクトリにコピーしておくと便利です。パッケージをデフォルトのスプールディレクトリ /var/spool/pkg にコピーする場合、pkgadd コマンドを使用するときに、コピー元のパッケージの位置 (-d device-name 引数) を指定する必要はありません。pkgadd コマンドは、デフォルトで /var/spool/pkg ディレクトリを調べて、コマンド行に指定されたパッケージをすべて見つけます。パッケージをスプールディレクトリにコピーすることと、パッケージをシステム上にインストールすることとは異なることに注意してください。

Procedureソフトウェアパッケージをスプールディレクトリに追加する方法 (pkgadd)

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. スプール済みのパッケージの中で、追加しようとしているものと同じ名前のものがあれば、すべて削除します。

    スプール済みのパッケージを削除する方法については、例 22–19 を参照してください。

  3. ソフトウェアパッケージをスプールディレクトリに追加します。


    # pkgadd -d device-name 
    -s spooldir pkgid ...
    -d device-name

    ソフトウェアパッケージのあるディレクトリの絶対パスを指定します。device-name には、デバイス、ディレクトリ、またはスプールディレクトリへのパスを指定できます。

    -s spooldir

    パッケージがスプールされるスプールディレクトリの名前を指定します。spooldir を指定する必要があります。

    pkgid

    (省略可能) スプールディレクトリに追加する 1 つまたは複数のパッケージの名前を空白で区切って指定します。この引数を省略すると、使用可能なすべてのパッケージがコピーされます。

  4. 指定したパッケージがスプールディレクトリに正常にコピーされていることを確認します。


    $ pkginfo -d spooldir
    | grep pkgid
    

    pkgid が正常にコピーされた場合、pkginfo コマンドによって、pkgid に関する 1 行の情報が返されます。正常にコピーされなかった場合は、pkginfo コマンドによってシステムプロンプトが返されます。


例 22–8 マウント済みの CD からスプールディレクトリを設定する

次の例は、shows how to transfer the SUNWman パッケージをマウント済みの SPARC Oracle Solaris 10 CD からデフォルトのスプールディレクトリ (/var/spool/pkg) に転送する方法を示しています。


# pkgadd -d /cdrom/cdrom0/Solaris_10/Product -s /var/spool/pkg SUNWman

Transferring <SUNWman> package instance


例 22–9 リモートソフトウェアパッケージサーバーからスプールディレクトリを設定する

コピーするパッケージがリモートシステムから利用できる場合は、そのパッケージが (パッケージ形式で) 格納されているディレクトリを手動でマウントして、ローカルスプールディレクトリにパッケージをコピーすることができます。

次の例は、そのためのコマンドを示したものです。この例では、package-server というリモートシステムの /latest-packages ディレクトリにソフトウェアパッケージが格納されているものとします。mount コマンドはパッケージディレクトリをローカルの /mnt 上にマウントします。pkgadd コマンドは、SUNWpl5p パッケージを /mnt からデフォルトのスプールディレクトリ (/var/spool/pkg) にコピーします。


# mount -F nfs -o ro package-server:/latest-packages /mnt
# pkgadd -d /mnt -s /var/spool/pkg SUNWpl5p
Transferring <SUNWpl5p> package instance

オートマウンタが実行されている場合は、リモートパッケージサーバーを手動でマウントする必要はありません。代わりに、オートマウンタパス (この場合は、/net/package-server/latest-packages) を、-d オプションの引数として使用してください。


# pkgadd -d /net/package-server/latest-packages -s /var/spool/pkg SUNWpl5p

Transferring <SUNWpl5p> package instance


例 22–10 デフォルトのスプールディレクトリからソフトウェアパッケージをインストールする

次の例は、デフォルトのスプールディレクトリから SUNWpl5p パッケージをインストールする方法を示しています。オプションを何も指定しないと、pkgadd コマンドは /var/spool/pkg ディレクトリを検索して名前付きのパッケージを見つけます。


# pkgadd SUNWpl5p
	.
	.
	.
Installation of <SUNWpl5p> was successful.

Procedureインストール済みのすべてのパッケージに関する情報を表示する方法 (pkginfo)

  1. インストール済みのパッケージに関する情報を表示するには、pkginfo コマンドを使用します。


    $ pkginfo
    

例 22–11 インストール済みのパッケージを表示する

この例は、システムがスタンドアロンシステム、サーバーのいずれであるかにかかわらず、そのローカルシステム上にインストールされているすべてのパッケージを表示する方法を示しています。基本カテゴリ、パッケージ名、およびパッケージの説明が表示されています。


$ pkginfo
system      SUNWaccr       System Accounting, (Root)
system      SUNWaccu       System Accounting, (Usr)
system      SUNWadmap      System administration applications
system      SUNWadmc       System administration core libraries
.
.
.


例 22–12 ソフトウェアパッケージに関する詳細情報を表示する

この例は、システム上にインストールされているすべてのパッケージを長形式で表示する方法を示しています。この表示には、指定されたパッケージで利用可能なすべての情報が含まれます。


$ pkginfo -l SUNWcar
   PKGINST:  SUNWcar
      NAME:  Core Architecture, (Root)
  CATEGORY:  system
      ARCH:  sparc.sun4u
   VERSION:  11.9.0,REV=2002.04.06.15.27
   BASEDIR:  /
    VENDOR:  Sun Microsystems, Inc.
      DESC:  core software for a specific hardware platform group
    PSTAMP:  leo20031003183400
  INSTDATE:  Feb 20 2004 16:57
   HOTLINE:  Please contact your local service provider
    STATUS:  completely installed
     FILES:      114 installed pathnames
                  36 shared pathnames
                  40 directories
                  57 executables
               21469 blocks used (approx)

Procedureインストール済みのソフトウェアパッケージの整合性を検査する方法 (pkgchk)

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. インストール済みのパッケージの状態を調べます。

    • ファイルの属性または内容を検査するには、次のように入力します。


      # pkgchk -a| -c -v pkid ...
      
    • スプールディレクトリの絶対パスを指定するには、次のように入力します。


      # pkgchk -d spooldir pkgid ...
    -a

    ファイルの属性と内容 (デフォルト) ではなく、ファイルの属性 (アクセス権) だけを検査することを指定します。

    -c

    ファイルの内容と属性 (デフォルト) ではなく、ファイルの内容だけを検査することを指定します。

    -v

    冗長モードを指定します。このモードでは、処理されるたびにファイル名が表示されます。

    -d spooldir

    スプールディレクトリへの絶対パスを指定します。

    pkgid

    (省略可能) 1 つまたは複数のパッケージの名前を空白で区切って指定します。pkgid を指定しない場合は、システムにインストールされているすべてのソフトウェアパッケージが検査されます。


例 22–13 インストール済みのソフトウェアパッケージの内容を検査する

次の例は、パッケージの内容を検査する方法を示しています。


# pkgchk -c SUNWbash

エラーがない場合は、システムプロンプトが返されます。エラーがある場合は、pkgck コマンドによってエラーが報告されます。



例 22–14 インストール済みのソフトウェアパッケージのファイル属性を検査する

次の例は、パッケージのファイル属性を検査する方法を示しています。


# pkgchk -a SUNWbash

エラーがない場合は、システムプロンプトが返されます。エラーがある場合は、pkgck コマンドによってエラーが報告されます。



例 22–15 スプールディレクトリにインストールされているソフトウェアパッケージを検査する

次の例は、スプールディレクトリ (/export/install/packages) にコピーされたソフトウェアパッケージを検査する方法を示しています。


# pkgchk -d /export/install/packages
## checking spooled package <SUNWadmap>
## checking spooled package <SUNWadmfw>
## checking spooled package <SUNWadmc>
## checking spooled package <SUNWsadml>

スプールされたパッケージの検査には限界があります。これは、パッケージがインストールされないとすべての情報を検査できないからです。


Procedureインストール済みオブジェクトの整合性を検査する方法 (pkgchk -p、pkgchk -P)

この手順は、pkgchk コマンドを使ってインストール済みオブジェクトの整合性を検査する方法を示しています。新しい -P オプションを使用すると、部分パスを指定できます。このオプションは、ファイルとパッケージ間のマッピングを支援する目的で追加されました。このオプションを -l オプションと組み合わせると、指定した部分パスを含むファイルの情報が一覧表示されます。インストール済みオブジェクトの整合性を絶対パスを指定して検査するには、-p オプションを使用します。詳細は、pkgchk(1M) のマニュアルページを参照してください。

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. インストール済みオブジェクトの整合性を検査します。

    • 1 つまたは複数の絶対パス名に対するインストール済みオブジェクトの整合性を検査するには、次のように入力します。


      # pkgchk -lp path-name
      
    • 1 つまたは複数の部分パス名に対するインストール済みオブジェクトの整合性を検査するには、次のように入力します。


      # pkgchk -lP  partial-path-name
      
    -p path

    指定された 1 つまたは複数のパス名に対する整合性のみを検査します。パスは、1 つまたは複数のパス名をコンマで区切って指定します。ファイルの属性と内容 (デフォルト) ではなく、ファイルの属性 (アクセス権) だけを検査することを指定します。

    -P partial-path

    指定された 1 つまたは複数の部分パス名に対する整合性のみを検査します。部分パスは、1 つまたは複数の部分パス名をコンマで区切って指定します。部分パスに含まれる文字列を含むすべてのパス名に一致します。ファイルの内容と属性 (デフォルト) ではなく、ファイルの内容だけを検査することを指定します。

    -l

    同一パッケージに属する選択されたファイルに関する情報を表示します。このオプションを、-a-c- f-g-v の各オプションと同時に使用することはできません。冗長モードを指定します。このモードでは、処理されるたびにファイル名が表示されます。


例 22–16 絶対パス名を指定してインストール済みオブジェクトの整合性を検査する

この例では、pkgchk -lp コマンドで絶対パス名を指定してファイルシステム上の特定のオブジェクトの内容/属性を検査する方法を示しています。-l オプションは、同一パッケージに属する選択されたファイルに関する情報を表示します。


# pkgchk -lp /usr/sbin/pkgadd
Pathname: /usr/sbin/pkgadd
Type: regular file
Expected mode: 0555
Expected owner: root
Expected group: sys
Expected file size (bytes): 867152
Expected sum(1) of contents: 45580
Expected last modification: Jul 02 02:20:34 2004
Referenced by the following packages:
        SUNWpkgcmdsu   
Current status: installed


例 22–17 部分パス名を指定してインストール済みオブジェクトの整合性を検査する

この例では、pkgchk -lP コマンドでファイル名やディレクトリ名などの部分パス名を指定してファイルシステム上の特定のオブジェクトの内容/属性を検査する方法を示しています。-l オプションは、同一パッケージに属する選択されたファイルに関する情報を表示します。


# pkgchk -lP /sbin/pkgadd
Pathname: /usr/sbin/pkgadd
Type: regular file
Expected mode: 0555
Expected owner: root
Expected group: sys
Expected file size (bytes): 867152
Expected sum(1) of contents: 45580
Expected last modification: Jul 02 02:20:34 2004
Referenced by the following packages:
        SUNWpkgcmdsu   
Current status: installed

Pathname: /usr/sbin/pkgask
Type: linked file
Source of link: ../../usr/sbin/pkgadd
Referenced by the following packages:
        SUNWpkgcmdsu   
Current status: installed

ソフトウェアパッケージを削除する

ソフトウェアパッケージを削除 (アンインストール) するには、そのパッケージの追加 (インストール) 時に使用した関連ツールを使用します。たとえば、Oracle Solaris インストール GUI を使ってインストールしたソフトウェアは、Oracle Solaris インストール GUI を使ってアンインストールします。


注意 – 注意 –

ソフトウェアパッケージを削除するのに rm コマンドを使用しないでください。それを行なった場合、システム上にインストールされたすべてのパッケージを追跡しているデータベースの整合性がとれなくなります。


Procedureソフトウェアパッケージを削除する方法 (pkgrm)

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. インストール済みのパッケージを削除します。


    # pkgrm pkgid ...

    pkgid は、削除する 1 つまたは複数のパッケージの名前 (空白で区切られている) を識別します。この引数を省略すると、使用可能なパッケージがすべて削除されます。


例 22–18 ソフトウェアパッケージを削除する

次の例は、パッケージの削除方法を示しています。


# pkgrm SUNWctu

The following package is currently installed:
   SUNWctu         Netra ct usr/platform links (64-bit)
                   (sparc.sun4u) 11.9.0,REV=2001.07.24.15.53

Do you want to remove this package? y

## Removing installed package instance <SUNWctu>
## Verifying package dependencies.
## Processing package information.
## Removing pathnames in class <none>
.
.
.


例 22–19 スプールされたソフトウェアパッケージを削除する

次の例は、スプールされたパッケージの削除方法を示しています。


# pkgrm -s /export/pkg SUNWaudh
The following package is currently spooled:
   SUNWaudh        Audio Header Files
                   (sparc) 11.10.0,REV=2003.08.08.00.03
Do you want to remove this package? y
Removing spooled package instance <SUNWaudh>