この節では、パッケージコマンドを使ってパッケージを追加、検査、削除する方法について説明します。
スーパーユーザーになるか、同等の役割を引き受けます。
インストール済みのパッケージの中で、追加しようとしているものと同じ名前のものがあれば、すべて削除します。
この手順によって、追加および削除されたソフトウェアの正しい記録が取れます。同じアプリケーションの複数のバージョンをシステムで管理する場合もあります。ソフトウェアの複数のコピーを管理する方法については、パッケージの削除に関するガイドラインを、その作業手順については、ソフトウェアパッケージを削除する方法 (pkgrm)を参照してください。
ソフトウェアパッケージをシステムに追加します。
# pkgadd -a admin-file -d device-name pkgid ... |
-a admin-file |
(省略可能) インストール時に pkgadd コマンドが参照する管理ファイルを示す。管理ファイルの使用方法については、管理ファイルの使用を参照。 |
-d device-name |
ソフトウェアパッケージへの絶対パスを指定する。device-name には、デバイス、ディレクトリ、またはスプールディレクトリへのパスを指定できる。パッケージのあるパスを指定しないと、pkgadd コマンドはデフォルトのスプールディレクトリ (/var/spool/pkg) をチェックする。パッケージがそこにない場合、パッケージのインストールは失敗する。 |
pkgid |
(省略可能) インストールする 1 つまたは複数のパッケージの名前を空白で区切って指定する。この引数を省略すると、使用可能なすべてのパッケージがインストールされる。 |
パッケージのインストール中に pkgadd コマンドによって問題が検出されると、その問題に関連するメッセージに続いて、次のプロンプトが表示されます。
Do you want to continue with this installation? |
このプロンプトには、yes、no、または quit のいずれかで応答します。複数のパッケージを指定した場合は、no と入力して、インストール中のパッケージのインストールを中止してください。他のパッケージのインストールが続行されます。インストールを中止する場合は、quit と入力してください。
指定したパッケージが正常にインストールされていることを確認します。
# pkgchk -v pkgid |
エラーがない場合は、インストールされたファイルのリストが返されます。エラーがある場合は、pkgchk コマンドによってエラーが報告されます。
次の例は、マウント済みの Solaris 9 CD から SUNWpl5u パッケージをインストールする方法を示しています。また、パッケージファイルが正しくインストールされているかどうかを確認する方法も示します。
# pkgadd -d /cdrom/cdrom0/s0/Solaris_9/Product SUNWpl5u . . . Installation of <SUNWpl5u> was successful. # pkgchk -v SUNWpl5u /usr /usr/bin /usr/bin/perl /usr/perl5 /usr/perl5/5.00503 . . . |
インストールするパッケージがリモートシステムから利用できる場合は、そのパッケージが (パッケージ形式で) 格納されているディレクトリを手動でマウントして、ローカルシステムにパッケージをインストールすることができます。
次の例は、リモートシステムからソフトウェアパッケージをインストールする方法を示しています。この例では、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. |
次の例は、前の例に似ていますが、-a オプションを使用して noask-pkgadd という管理ファイルを指定している点が異なります。この管理ファイルについては、パッケージ追加時のユーザーの対話操作を省略するに説明されています。この例では、noask-pkgadd 管理ファイルがデフォルトの格納場所である /var/sadm/install/admin にあるものとします。
# pkgadd -a noask-pkgadd -d /net/package-server/latest-packages SUNWpl5u . . . Installation of <SUNWpl5u> was successful. |
使用頻度の高いインストール済みパッケージを、スプールディレクトリにコピーしておくと便利です。パッケージをデフォルトのスプールディレクトリ /var/spool/pkg にコピーする場合、pkgadd コマンドを使用するときに、コピー元のパッケージの位置 (-d device-name 引数) を指定する必要はありません。pkgadd コマンドは、デフォルトで /var/spool/pkg ディレクトリを調べて、コマンド行に指定されたパッケージをすべて見つけます。パッケージをスプールディレクトリにコピーすることと、パッケージをシステム上にインストールすることとは異なることに注意してください。
スーパーユーザーになるか、同等の役割を引き受けます。
スプール済みのパッケージの中で、追加しようとしているものと同じ名前のものがあれば、すべて削除します。
スプール済みのパッケージを削除する方法については、例 — スプールされたソフトウェアパッケージを削除するを参照してください。
ソフトウェアパッケージをスプールディレクトリに追加します。
# pkgadd -d device-name -s spooldir pkgid... |
-d device-name |
ソフトウェアパッケージへの絶対パスを指定する。device-name には、デバイス、ディレクトリ、またはスプールディレクトリへのパスを指定できる。 |
-s spooldir |
パッケージがスプールされるスプールディレクトリの名前を指定する。spooldir を指定する必要がある。 |
pkgid |
(省略可能) スプールディレクトリに追加する 1 つまたは複数のパッケージの名前を空白で区切って指定する。この引数を省略すると、使用可能なすべてのパッケージがコピーされる。 |
指定したパッケージがスプールディレクトリに正常にコピーされていることを確認します。
$ pkginfo -d spooldir | grep pkgid |
pkgid が正常にコピーされると、pkginfo コマンドによって、pkgid に関する 1 行の情報が返されます。正常にコピーされなかった場合は、pkginfo コマンドによってシステムプロンプトが返されます。
次の例は、SUNWman パッケージをマウント済みの SPARC Solaris 9 CD からデフォルトのスプールディレクトリ (/var/spool/pkg) に転送する方法を示しています。
# pkgadd -d /cdrom/cdrom0/s0/Solaris_9/Product -s /var/spool/pkg SUNWman Transferring <SUNWman> package instance |
コピーするパッケージがリモートシステムから利用できる場合は、そのパッケージが (パッケージ形式で) 格納されているディレクトリを手動でマウントして、ローカルスプールディレクトリにパッケージをコピーすることができます。
次の例は、このためのコマンドを示しています。この例では、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 |
次の例は、デフォルトのスプールディレクトリから SUNWpl5p パッケージをインストールする方法を示しています。オプションを何も指定しないと、pkgadd コマンドは /var/spool/pkg ディレクトリを検索して名前付きのパッケージを見つけます。
# pkgadd SUNWpl5p . . . Installation of <SUNWpl5p> was successful. |
pkginfo コマンドを使用して、インストール済みのパッケージに関する情報を表示します。
$ pkginfo |
次は、システムがスタンドアロンまたはサーバーのどちらであるかにかかわらず、pkginfo コマンドが、ローカルシステムにインストールされているすべてのパッケージを表示する例です。基本カテゴリ、パッケージ名、およびパッケージの説明が表示されています。
$ pkginfo system SUNWaccr System Accounting, (Root) system SUNWaccu System Accounting, (Usr) system SUNWadmap System administration applications system SUNWadmc System administration core libraries . . . |
$ pkginfo -l SUNWcar PKGINST: SUNWcar NAME: Core Architecture, (Root) CATEGORY: system ARCH: sparc.sun4u VERSION: 11.9.0,REV=2001.10.16.17.05 BASEDIR: / VENDOR: Sun Microsystems, Inc. DESC: core software for a specific hardware platform group PSTAMP: crash20011016171723 INSTDATE: Nov 02 2001 08:53 HOTLINE: Please contact your local service provider STATUS: completely installed FILES: 111 installed pathnames 36 shared pathnames 40 directories 56 executables 17626 blocks used (approx) |
スーパーユーザーになるか、同等の役割を引き受けます。
インストール済みのパッケージの状態を調べます。
# pkgchk -a| -c -v pkgid ... # pkgchk -d spooldir pkgid ... |
-a |
ファイルの属性と内容 (デフォルト) ではなく、ファイルの属性 (つまりアクセス権) だけを検査することを指定する。 |
-c |
ファイルの内容と属性 (デフォルト) ではなく、ファイルの内容だけを検査することを指定する。 |
-v |
冗長モードを指定する。このモードでは、処理されるたびにファイル名が表示される。 |
-d spooldir |
スプールディレクトリへの絶対パスを指定する。 |
pkgid |
(省略可能) 1 つまたは複数のパッケージの名前を空白で区切って指定する。pkgid を指定しない場合は、システムにインストールされているすべてのソフトウェアパッケージが検査される。 |
次の例は、パッケージの内容を検査する方法を示しています。
# pkgchk -c SUNWbash |
エラーがない場合は、システムプロンプトが返されます。エラーがある場合は、pkgck コマンドによってエラーが報告されます。
次の例は、パッケージのファイル属性を検査する方法を示しています。
# pkgchk -a SUNWbash |
エラーがない場合は、システムプロンプトが返されます。エラーがある場合は、pkgck コマンドによってエラーが報告されます。
次の例は、スプールディレクトリ (/export/install/packages) にコピーされたソフトウェアパッケージを検査する方法を示しています。
# pkgchk -d /export/install/packages ## checking spooled package <SUNWadmap> ## checking spooled package <SUNWadmfw> ## checking spooled package <SUNWadmc> ## checking spooled package <SUNWsadml> |
スプールされたパッケージの検査には限界があります。これは、パッケージがインストールされないとすべての情報を検査できないからです。
ソフトウェアパッケージを削除 (アンインストール) するときは、このパッケージの追加 (インストール) 時に使用した関連ツールを使用します。たとえば、Web Start インストーラを使ってインストールしたソフトウェアは、Web Start アンインストーラでアンインストールします。
ソフトウェアパッケージを削除するのに rm コマンドを使用しないでください。
インストール済みのパッケージを削除します。
# pkgrm pkgid... |
pkgid は、削除する 1 つまたは複数のパッケージの名前 (空白で区切られている) を識別します。この引数を省略すると、使用可能なパッケージがすべて削除されます。
次の例は、パッケージの削除方法を示しています。
# 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> . . . |
次の例は、スプールされたパッケージの削除方法を示しています。
# pkgrm -s /export/pkg SUNWdmfex.u The following package is currently spooled: SUNWdmfex.u Sun Davicom 10/100Mb Ethernet Driver (64-bit) (sparc.sun4u) 11.9.0,REV=2001.07.24.15.53 Do you want to remove this package? y Removing spooled package instance <SUNWdmfex.u> |