Solaris のシステム管理 (第 1 巻)

第 17 章 ソフトウェア管理の手順

この章では、Solaris コマンドと Admintool グラフィカルインタフェースを使用して、ソフトウェアパッケージをインストール、削除、管理する方法を説明します。

この章で説明する手順は次のとおりです。

ソフトウェアパッケージを処理するコマンド

表 17-1 に、ソフトウェアパッケージの追加、削除、検査、インストールに使用するコマンドを示しています。

表 17-1 パッケージの追加および削除を行うコマンド

コマンド 

説明 

pkgadd(1M)

ソフトウェアパッケージをインストールする 

pkgrm(1M)

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

pkgchk(1M)

ソフトウェアパッケージのインストールを検査する 

pkginfo(1)

ソフトウェアパッケージ情報を表示する 

pkgparam(1)

ソフトウェアパッケージのパラメータ値を表示する 

パッケージの追加と削除における既知の問題

Solaris 2.5 より前に開発された一部のパッケージを追加、または削除する場合、いくつかの問題があることがわかっています。パッケージの追加または削除に失敗したり、ユーザー入力を要求されたときのユーザー応答内容が無視された場合は、次の環境変数を設定してください。

NONABI_SCRIPTS=TRUE

パッケージの追加

スタンドアロンシステムにパッケージを追加する方法

  1. スーパーユーザーとしてログインします。

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

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

  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 と入力して、インストール中のパッケージのインストールを中止してください。pkgadd は、他のパッケージのインストールを続けます。インストールを中止するには、quit と入力してください。

  4. パッケージが正常にインストールされたことを確認するには、pkgchk コマンドを使用します。


    # pkgchk -v pkgid
    

    pkgchk が、エラーがないと判断した場合は、インストールされたファイルのリストが返されます。そうでない場合は、エラーについて報告されます。

例 - マウントされた CD からソフトウェアをインストールする


注 -

今回の Solaris リリースの名称は「Solaris 7」ですが、コード、パス名、パッケージパス名などには、「Solaris 2.7」または「SunOS 5.7」という名称が使用されていることがあります。コード、パス、パッケージパスなどを実際に入力または使用するときには、必ずマニュアル中に記述されている名称に従ってください。


次の例は、SUNWaudio パッケージをマウントされた Solaris 7 CD からインストールするコマンドを示しています。この例では、pkgchk コマンドを使用して、パッケージファイルが正しくインストールされたかどうかを検査する方法も示しています。


# pkgadd -d /cdrom/cdrom0/s0/Solaris_2.7/Product SUNWaudio
	.
	.
	.
Installation of <SUNWaudio> complete.
# pkgchk -v SUNWaudio
/usr
/usr/bin
/usr/bin/audioconvert
/usr/bin/audioplay
/usr/bin/audiorecord

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

インストールしたいパッケージがリモートシステムから利用できるパッケージの場合は、そのパッケージ (パッケージ形式) を含むディレクトリを手動でマウントして、ローカルシステムにパッケージをインストールすることができます。次の例は、このためのコマンドを示しています。この例では、package-server という名前のリモートシステムが、/latest-packages ディレクトリにソフトウェアパッケージを持つものと想定しています。mount コマンドは、パッケージを /mnt にローカルにマウントし、pkgadd コマンドは、SUNWaudio パッケージをインストールしています。


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

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


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

次の例は、前の例に似ていますが、-a オプションを使用して noask-pkgadd という名前の管理ファイルを指定している点が異なります。このファイルは 「パッケージ追加時のユーザーの対話操作を省略する」に示されています。この例では、noask-pkgadd 管理ファイルが、デフォルト位置の /var/sadm/install/admin にあるものと想定しています。


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

スプールディレクトリの使用方法

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

スプールディレクトリにパッケージを追加する方法

  1. サーバーまたはスタンドアロンシステムのスーパーユーザーとしてログインします。

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

    スプールされたパッケージを削除する方法については、「スプールされたパッケージを削除する方法」を参照してください。

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


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

    -d device-name

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

    -s spooldir

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

    pkgid

    (省略可能) インストールされる 1 つまたは複数のパッケージの名前を空白で区切って指定する。この引数を省略すると、pkgadd は、使用可能なすべてのパッケージをコピーする。

  4. パッケージがスプールディレクトリに正常にコピーされたことを確認するには、pkginfo コマンドを使用します。


    $ pkginfo -d spooldir | grep pkgid
    

    pkgid が正常にコピーされると、pkginfo コマンドは、それに関する 1 行の情報を返します。正常にコピーされないと、システムプロンプトが返されます。

例 - マウントされた CD からスプールディレクトリを設定する

次の例は、SUNWaudio および SUNWab2m の各パッケージを、マウントされた SPARC 版 Solaris 7 CD からデフォルトのスプールディレクトリ (/var/spool/pkg) にコピーするコマンドを示しています。


# pkgadd -d /cdrom/cdrom0/s0/Solaris_2.7/Product -s /var/spool/pkg SUNWaudio SUNWab2m
Transferring <SUNWaudio> package instance
Transferring <SUNWab2m> package instance

例 - リモートパッケージサーバーからスプールディレクトリを設定する

インストールしたいパッケージがリモートシステムから利用できるパッケージの場合は、そのパッケージを (パッケージの形で) 含むディレクトリを手作業でマウントして、ローカルスプールディレクトリにそれをコピーすることができます。次の例は、このためのコマンドを示しています。この例では、package-server という名前のリモートシステムが、/latest-packages ディレクトリにソフトウェアパッケージを持つものと想定しています。mount コマンドは、パッケージを /mnt にローカルにマウントし、pkgadd コマンドは、SUNWman パッケージを /mnt からデフォルトのスプールディレクトリ (/var/spool/pkg) にコピーします。


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

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


# pkgadd -d /net/package-server/latest-packages -s /var/spool/pkg SUNWman
Transferring <SUNWman> package instance

例 - デフォルトのスプールディレクトリからパッケージをインストールする

次の例では、デフォルトのスプールディレクトリから SUNWman パッケージをインストールするコマンドを示しています (pkgadd にオプションを使用しないと、/var/spool/pkg で指定のパッケージが検索されます。)


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

同機種クライアント/サーバー環境でのパッケージの追加

この説明では、「同機種クライアント/サーバー」とは、同じバージョンの Solaris を実行していて、ハードウェアプラットフォーム (すべて SPARC か、またはすべて x86 プラットフォーム) が同じであるクライアントとサーバーを意味します。

この節では、ファイルをクライアントのルートファイルシステムに置くパッケージのインストール方法を説明します。クライアントにパッケージをインストールするときに、そのパッケージがファイルをクライアントのルートファイルシステムに置かない場合、そのパッケージは直接サーバー上にインストールして共有することができます。(これは、パッケージがサーバーの /usr などのファイルシステムにインストールされる場合を想定しています。)

pkgadd コマンドに -R オプションを付けて使用して、クライアントインストールのためのクライアントルートファイルシステムの位置を指定してください。(-R オプションを使用すると、パッケージインストール用の代替ベースディレクトリを指定できるという一般的な誤解がありますが、これは間違いです。-R オプションは、クライアントのルートファイルシステムを定義するものです。代替ベースディレクトリを指定するには、-a オプションを付けて pkgadd を使用し、basedir キーワードが新しいインストールディレクトリに設定されている管理ファイルを提供してください。)


注 -

ディスクレスクライアントまたは AutoClient システムのサーバーにインストールされたパッケージは、そのクライアントと他のクライアントに読み取り専用で共有されます。


クライアント/サーバー環境でパッケージをインストールして管理する方法はいくつかありますが、この項では、サーバーからのインストール方法について説明します。これはソフトウェアを集中管理する方法です。ただし、クライアントにログインして、直接それらにソフトウェアをインストールできることに注意してください。

クライアントへの Sun パッケージの追加

通常、Sun パッケージを同機種環境のクライアントにインストールする場合は、表 17-2 に示すガイドラインに従ってください。

表 17-2 同機種環境のクライアントへの Sun パッケージのインストール

パッケージファイルのインストール場所 

手順 

ルート (/) ファイルシステム

「ディスクレスクライアントまたは AutoClient システムのルート (/) ファイルシステムにパッケージを追加する方法」の手順を使用してパッケージを追加する。

/usr

「スタンドアロンシステムにパッケージを追加する方法」の手順を使用してパッケージを追加する。

「パッケージファイルのインストール場所を決定する方法」の手順を使用すると、Sun パッケージファイルのインストール場所を調べることができます。

クライアントへのサードパーティパッケージの追加

サードパーティパッケージをクライアントに追加する場合は、次のガイドラインに従ってください。

  1. 「スタンドアロンシステムにパッケージを追加する方法」の手順に従って、サーバーにパッケージをインストールします。

  2. 「ディスクレスクライアントまたは AutoClient システムのルート (/) ファイルシステムにパッケージを追加する方法」のいずれか適切な手順に従って、クライアントにパッケージをインストールします。

異機種クライアント/サーバー環境でのパッケージの追加

この説明では、「異機種クライアント/サーバー環境」とは、クライアントとサーバーが異なるバージョンの Solaris を実行しているか、またはハードウェアプラットフォームが異なる (たとえば、Solaris 7 クライアントの Solaris 2.3 サーバーや、SPARC クライアントを持つ x86 サーバーなど) 場合を示します。異機種クライアント/サーバー環境へパッケージを追加することは、特有の困難が伴います。サーバーには、それがサポートする異機種クライアントのための複数の /usr ファイルシステムがあります。たとえば、x86 システム用の x86 /usr ファイルシステム、Solaris 2.4 クライアント用の Solaris 2.4 /usr ファイルシステムなどです。通常、異機種クライアント/サーバー環境にパッケージをインストールする場合は、表 17-3 のガイドラインに従ってください。

表 17-3 異機種環境へのパッケージのインストール

パッケージファイルのインストール場所 

手順 

ルート (/) ファイルシステム

「ディスクレスクライアントまたは AutoClient システムのルート (/) ファイルシステムにパッケージを追加する方法」の手順を使用してパッケージを追加する。

/usr

「パッケージをサーバーに追加する方法」の手順を使用してパッケージを追加する。

パッケージファイルのインストール場所を決定する方法

この手順は、Sun ソフトウェアパッケージにのみ有効です。サードパーティソフトウェア製品の場合、パッケージファイルのインストール場所を判断する最も確実な方法は、pkgmap ファイルでパッケージのディレクトリを調べる方法です。

  1. 任意のシステムにログインします。

    パッケージがあるディレクトリにアクセスできなければなりません。

  2. Sun パッケージファイルのインストール場所を指定します。


    $ pkgparam -d device-name pkgid SUNW_PKGTYPE
    

    -d device-name

    ソフトウェアパッケージの絶対パスを指定する。device-name は、デバイス、ディレクトリ、またはスプールディレクトリのいずれかへのパスにすることができる。-d オプションを使用しないと、pkgparam は、ローカルシステムにインストールされた指定の pkgid のデフォルトのインストール用ディレクトリを返す。

    pkgid

    ソフトウェアパッケージの名前 

    SUNW_PKGTYPE

    Solaris ソフトウェアパッケージのインストール場所について報告する特殊パラメータを指定する。パッケージに SUNW_PKGTYPE パラメータが設定されていないと、pkgparam コマンドは、空の文字列を返す。Sun パッケージの場合、これは通常、パッケージが /opt にインストールされることを示す。

例 - パッケージファイルのインストール場所を決定する


$ pkgparam -d /cdrom/cdrom0/s0/Solaris_2.7
/Product SUNWvolr SUNW_PKGTYPE
root
$ pkgparam -d /cdrom/cdrom0/s0/Solaris_2.7/Product SUNWvolu SUNW_PKGTYPE
usr

ディスクレスクライアントまたは AutoClient システムのルート (/) ファイルシステムにパッケージを追加する方法

ディスクレスクライアントまたは AutoClient システムにパッケージを追加する場合、クライアントはローカルにはシステムディスクしか持たないため、実際にはそのクライアントにパッケージをインストールすることにはなりません。代わりに、サーバー上にあるクライアントのルートファイルシステムにパッケージを追加します。ディスクレスクライアントまたは AutoClient システムのルートファイルシステムは通常、サーバーの /export/root/hostname にあります。


注 -

パッケージファイルが /usr ファイルシステムにインストールされる場合は、パッケージをサーバーにインストールする必要があります。同機種クライアント/サーバー環境で作業している場合は、表 17-2 を参照して、パッケージのインストール方法を判断してください。異機種クライアント/サーバー環境で作業している場合は、表 17-3 を参照して、パッケージのインストール方法を決定してください。


  1. サーバーにスーパーユーザーとしてログインします。

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

    これによって、システムは、追加および削除されたソフトウェアの正しい記録を保持できます。同じアプリケーションの複数のバージョンをシステムで管理したい場合もあります。この方法の概要については 「パッケージの削除に関するガイドライン」を、手順については 「ディスクレスクライアントまたは AutoClient システムのパッケージを削除する方法」を参照してください。

  3. ソフトウェアパッケージをクライアントシステムのルート (/) ファイルシステムに追加します。


    server# pkgadd -R rootpath -d device-name pkgid...

    -R rootpath

    クライアントのルートファイルシステムのパス名を指定する。 

    -d device-name

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

    pkgid

    (省略可能) インストールされる 1 つまたは複数のパッケージの名前を空白で区切って指定する。この引数を省略すると、pkgadd は、使用可能なすべてのパッケージを表示する。


    注意 - 注意 -

    パッケージのインストール中に、次のメッセージが表示されることがあります。WARNING: filename <not present on Read Only file system>

    これは、パッケージのファイルの一部がインストールされていないことを示します。クライアントが、ソフトウェアを正しく動作させるために必要なすべてのファイルへのアクセスをもっていない可能性があります。


  4. パッケージが正常にインストールされたことを確認するには、サーバーにログインしてスーパーユーザーになり、pkginfo コマンドを使用します。


    server# pkginfo -R rootpath | egrep pkgid
    

    pkginfo コマンドは、インストールされた pkgid に関する 1 行の情報を返します。pkgid がインストールされていない場合、pkginfo は何も表示しません。

  5. pkgchk コマンドを使用して、パッケージが正常にインストールされていることを確認します。


    server# pkgchk -R rootpath -v pkgid
    

    pkgchk はエラーがないと判断した場合は、インストールされたファイルのリストを返します。そうでない場合は、エラーについて報告されます。

例 - マウントされた CD からディスクレスクライアントのルートファイルシステムへパッケージをインストールする


注 -

今回の Solaris リリースの名称は「Solaris 7」ですが、コード、パス名、パッケージパス名などには、「Solaris 2.7」または「SunOS 5.7」という名称が使用されていることがあります。コード、パス、パッケージパスなどを実際に入力または使用するときには、必ずマニュアル中に記述されている名前に従ってください。


次の例は、サーバーからディスクレスクライアントのルートファイルシステムに SUNWadmr (システムおよびネットワーク管理をサポートするソフトウェア) パッケージをインストールするためのコマンドを示しています。この場合、ディスクレスクライアントのルートファイルシステムは、/export/root/client-1 です。この例では、SUNWadmr パッケージが、マウントされた SPARC 版 Solaris CD (/cdrom/cdrom0/s0/Solaris_2.7/Product) から使用できるものと想定しています。pkginfopkgchk を使用して、パッケージのファイルが正しくインストールされていることを確認する方法も示しています。


server# pkgadd -R /export/root/client-1 -d /cdrom/cdrom0/s0/Solaris_2.7/Product SUNWadmr
			.
			.
			.
Installation of <SUNWadmr> complete.
server# pkginfo -R /export/root/client-1 | egrep SUNWadmr
system			SUNWadmr			System & Network Administration Root
server# pkgchk -v -R /export/root/client-1 SUNWadmr
/etc
/etc/init.d
/etc/init.d/autoinstall
/etc/init.d/sysid.net
/etc/init.d/sysid.sys
/etc/rc2.d
/etc/rc2.d/S30sysid.net
/etc/rc2.d/S71sysid.sys
/etc/rc2.d/S72autoinstall
/sbin
/sbin/bpgetfile

例 - マウントされた CD からディスクレスクライアントのルートファイルシステムへパッケージをインストールする

次の例は、サーバーからディスクレスクライアントのルートファイルシステムへ SUNWcg6 パッケージをインストールする方法を示しています。この場合、ディスクレスクライアントのルートファイルシステムは /export/root/client-2 です。この例では、SUNWcg6 パッケージが、ネットワーク上のパッケージサーバー (/net/package-server/latest-packages) から使用できることを前提としています。


server# pkgadd -R /export/root/client-2 -d /net/package-server/latest-packages SUNWcg6
		.
		.
		.
Installation of <SUNWcg6> complete.

パッケージをサーバーに追加する方法

  1. サーバーにスーパーユーザーとしてログインします。

  2. サーバーに、そのディスクレスクライアントと AutoClient システムに必要な OS サービスがあることを確認します。

    ホストマネージャを使用して、サーバーで使用可能な OS サービスを確認します。OS サービスを追加したい場合は、ホストマネージャの「サービス追加」機能を使用して追加を行うことができます。詳細については、第 4 章「サーバーとクライアントサポートの管理の手順」を参照してください。

  3. サーバーと、ディスクレスまたは AutoClient システムが同じバージョンの Solaris であるか、ハードウェアプラットフォームが同じかどうかによって、次の手順を決定します。

    ディスクレスまたは AutoClient システムと、サーバーの状態 

    手順 

    同じ Solaris のリリースと同じハードウェアアーキテクチャ 

    この手順は使用しないこと。代わりに、「スタンドアロンシステムにパッケージを追加する方法」の手順を使用する。

     

    Solaris のリリースが異なるか、またはハードウェアプラットフォームが異なる (たとえば、Solaris 7 ディスクレスクライアントの Solaris 2.5 サーバー、または SPARC ディスクレスクライアントの x86 サーバー) 

    手順 4 に進む。

  4. デフォルト管理ファイルのコピーを作成します。


    # cp /var/sadm/install/admin/default /var/sadm/install/admin/admin-file
    
  5. 新しい管理ファイルを編集して、basedir キーワードを設定します。

    テキストエディタを使用して新しい管理ファイルを編集し、basedir キーワードを、クライアントをサポートする OS サービスへの正しいパスに設定します。

       basedir=/export/exec/Solaris_2.7_platform.all/usr

    Solaris_2.7

    Solaris バージョン番号を示す。たとえば、Solaris_2.7 など。

    platform

    クライアントのハードウェアアーキテクチャーを示す。たとえば、Solaris_2.7_i386.allSolaris_2.7_sparc.all などにおける i386sparc など。

  6. ソフトウェアパッケージをサーバーに追加します。

    管理ファイルは、パッケージを、クライアントに適した /usr ファイルシステムにインストールするように指定します。


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

    -a admin-file

    (省略可能) pkgadd がインストール時に参照する管理ファイルを指定する。デフォルトにより、pkgadd は、/var/sadm/install/admin ディレクトリを調べて、指定の管理管理ファイルを探す。絶対パスを管理ファイルに指定することもできる。

    -d device-name

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

    pkgid

    (省略可能) インストールされる 1 つまたは複数のパッケージの名前を空白で区切って示す。この引数を省略すると、pkgadd は、使用可能なすべてのパッケージを表示する。

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


    Do you want to continue with this installation?

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

  7. パッケージが正常にインストールされたことを確認するには、pkginfo コマンドを使用します。


    # pkginfo pkgid*
    

    pkginfo コマンドは、インストールされているパッケージのすべてについて表示します。通常、pkgadd は、すでにインストールされたパッケージと重複するバージョンを、pkgid.1pkgid.2 としてインストールします。

  8. pkgchk コマンドを使用して、パッケージが正常にインストールされていることを確認します。


    # pkgchk -v pkgid
    

    pkgchk は、指定されたパッケージにエラーがないと判断した場合は、インストールされたファイルのリストを返します。そうでない場合は、エラーについて報告します。

例 - マウントされた CD からソフトウェアをインストールする

次の例では、/usr ファイルシステムにファイルをインストールする架空のパッケージである SUNWtoolu をインストールするコマンドを示しています。このパッケージは、デフォルトにより /cdrom/cdrom0 にマウントされた、マウント済み製品 CD にあるものと想定してください。pkgadd コマンドは、new-basedir という名前の管理ファイルを使用して、パッケージの新しいインストール用ディレクトリを指定します。この例は、pkgchk を使用して、パッケージファイルが正しくインストールされたかどうかを確認する方法も示しています。


# pkgadd -a new-basedir /cdrom/cdrom0 SUNWtoolu
	.
	.
	.
Installation of <SUNWtoolu> complete.
# pkgchk -v SUNWtoolu
/usr
/usr/bin
/usr/bin/toolconvert
/usr/bin/toolplay
/usr/bin/toolrecord

パッケージのインストールの検査

pkgchk コマンドを使用すると、パッケージのインストールの完全性、パス名、ファイルの内容、およびファイル属性をチェックできます。オプションの詳細については、pkgchk(1M) のマニュアルページを参照してください。

pkginfo コマンドを使用して、システムにインストールされたパッケージに関する情報を表示してください。

インストールされたすべてのパッケージに関する情報を表示する方法

pkginfo コマンドを使用して、インストールされたパッケージに関する情報を表示します。


$ pkginfo

例 - インストールされたすべてのパッケージを表示する

次の例は、システムがスタンドアロン、サーバー、ディスクレスクライアント、または AutoClient システムのどれであるかに関係なく、ローカルシステムにインストールされたすべてのパッケージを表示する pkginfo コマンドを示しています。出力には、基本カテゴリ、パッケージ名、およびパッケージの説明が示されています。


$ pkginfo
system      SUNWab2m       Solaris Documentation Server Lookup
system      SUNWaccr       System Accounting, (Root)
system      SUNWaccu       System Accounting, (Usr)
system      SUNWadmap      System administration applications
system      SUNWadmc       System administration core libraries

例 - ディスクレスクライアントまたは AutoClient システムにインストールされたすべてのパッケージを表示する

ディスクレスまたは AutoClient システムクライアント/サーバーの設定では、サーバーからソフトウェアを管理することができます。サーバーはこのための場所であるため、pkginfo コマンドにオプションを付けて使用する必要があります。次の例は、io という名前のディスクレスクライアントにインストールされたすべてのパッケージを表示するための pkginfo -R コマンドを示しています。このコマンドは、ディスクレスクライアントのサーバーから実行します。


server$ pkginfo -R /export/root/io
system			SUNWaccr			System Accounting, (Root)
system			SUNWaccu			System Accounting, (Usr)
system			SUNWadmap		System & Network Administration Applications
system			SUNWadmfw		System & Network Administration Framework
	.
	.
	.

インストールされたパッケージが完全であるかどうかをチェックする方法

  1. スーパーユーザーとしてシステムにログインします。

  2. インストールされたパッケージの状態を、pkgchk コマンドによってチェックします。


    # pkgchk -a | -c -v pkgid ...
    # pkgchk -d spooldir pkgid ...

    -a

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

    -c

    pkgchk のデフォルトであるファイル内容と属性ではなく、ファイル内容だけを検査するように指定する。

    -v

    pkgchk による処理中、ファイル名を表示する詳細モードを指定する。

    -d spooldir

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

    pkgid

    (省略可能) 1 つまたは複数のパッケージを空白で区切って指定する。pkgid を指定しないと、pkgchk は、システムにインストールされたすべてのソフトウェアパッケージをチェックする。これを省略すると、pkgchk は使用可能なすべてのパッケージを表示する。

例 - インストールされたパッケージの内容を検査する

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


# pkgchk -c SUNWadmfw

pkgchk はエラーがないと判断すると、システムプロンプトに戻ります。そうでない場合は、エラーを表示します。

例 - インストールされたパッケージのファイル属性を検査する

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


# pkgchk -a SUNWadmfw

pkgchk はエラーがないと判断すると、システムプロンプトに戻ります。そうでない場合は、エラーを表示します。

例 - スプールディレクトリにインストールされたパッケージを検査する

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


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

注 -

スプールされたパッケージの検査は、パッケージがインストールされないとすべての情報を検査できないため、制限されます。


パッケージに関する詳細を表示する方法

pkginfo -l コマンドを使用して、インストールされたパッケージに関する情報を表示します。


$ pkginfo -l pkgid ...

-l

出力を長形式で表示するように指定する。これには、パッケージに関する入手可能な情報すべてが含まれる。 

pkgid

(省略可能) 1 つまたは複数のパッケージの名前を空白で区切って指定する。この引数を省略すると、pkginfo は、使用可能なすべてのパッケージに関する情報を表示する。

例 - パッケージに関する詳細を表示する


$ pkginfo -l SUNWcar
     PKGINST:  SUNWcar
      NAME:  Core Architecture, (Root)
  CATEGORY:  system
      ARCH:  sparc.sun4m
   VERSION:  11.6.0,REV=1998.05.06.20.36
   BASEDIR:  /
    VENDOR:  Sun Microsystems, Inc.
      DESC:  core software for a specific hardware platform group
    PSTAMP:  on99819980507193137
  INSTDATE:  Jun 02 1998 11:43
   HOTLINE:  Please contact your local service provider
    STATUS:  completely installed
     FILES:     48 installed pathnames
                 5 shared pathnames
                 7 directories
                20 executables
              3299 blocks used (approx)

サーバーとスタンドアロンシステムからのパッケージの削除


注意 - 注意 -

インストールされたパッケージの削除には、rm コマンドではなく、必ず pkgrm コマンドを使用してください。rm コマンドを使用すると、インストールされたパッケージのシステム記録に不具合が生じます。


パッケージを削除する方法

  1. システムにスーパーユーザーとしてログインします。

  2. インストールされたパッケージを削除します。


    # pkgrm pkgid... 
    

    pkgid

    (省略可能) 1 つまたは複数のパッケージの名前を空白で区切って指定する。これを省略すると、使用可能なパッケージすべてが表示される。 

スプールされたパッケージを削除する方法

  1. スーパーユーザーとしてログインします。

  2. インストールされたパッケージを、pkgrm -s コマンドによってスプールディレクトリから削除します。


    # pkgrm -s spooldir pkgid... 

    -s spooldir

    パッケージがスプールされたスプールディレクトリの名前を指定する。 

    pkgid

    (省略可能) 1 つまたは複数のパッケージの名前を空白で区切っ指定する。pkgid を指定しないと、pkgrm は、ユーザーに対して、スプールディレクトリにある各パッケージを削除するように要求する。これを省略すると、使用可能なパッケージすべてが表示される。

ディスクレスクライアントまたは AutoClient システムのパッケージを削除する方法

  1. サーバーにログインして、スーパーユーザーになります。

  2. pkgrm -R コマンドによって、データレスクライアントの OS サーバーからソフトウェアパッケージを削除します。


    server# pkgrm -R rootpathpkgid...

    -R rootpath

    クライアントのルートファイルシステムのマウントポイントを指定する。 

    pkgid

    (省略可能) 1 つまたは複数のパッケージの名前を空白で区切って指定する。この引数を省略すると、使用可能なパッケージすべてが表示される。 

    共有とマークされたクライアントのパッケージデータベース内のファイルは、サーバーから削除されませんが、クライアントのデータベースからは削除されます。すべてのクライアントがパッケージを削除した場合は、pkgrm をサーバーで個別に呼び出すことにより、サーバーから共有ファイルを削除することができます。

  3. パッケージが正常に削除されたことを確認するには、pkginfo コマンドを使用してください。


    server# pkginfo -R rootpath | egrep pkgid
    

    pkgid がインストールされている場合、pkginfo コマンドは、それに関する情報を 1 行で返します。インストールされていない場合は、システムプロンプトに戻ります。

例 - ディスクレスクライアントのパッケージを削除する

次の例では、クライアントのルートファイルシステムが共有されるものと想定されています。また、これらのコマンドが、クライアントのサーバーで実行されることが前提となっています。


server# pkgrm -R /export/root/client-1 SUNWaudio
The following package is currently installed.
SUNWaudio
Do you want to remove this package? y/n/q?

y
	.
	.
	.

Admintool を使用してソフトウェアパッケージを追加または削除する

Solaris 7 には Admintool が組み込まれています。これは、ソフトウェアパッケージの追加と削除を含む、いくつかの管理作業を実行するためのグラフィカルユーザーインタフェースです。Admintool を使用すると、特に次のことを実行できます。

Admintool を起動する方法

  1. インストールされたシステムにログインして、スーパーユーザーになります。

    シェルプロンプトに、次のように入力します。


    $ su
    

    UNIX の sysadmin グループ (グループ 14) のメンバーでなければ、システムのスーパーユーザーになって、Admintool によりソフトウェアパッケージの追加または削除を行う必要があります。

  2. CD を CD-ROM ドライブにロードします。

    ボリューム管理が自動的に CD をマウントします。

  3. Admintool を起動します。


    # admintool &
    

    「ユーザー (Users)」ウィンドウが表示されます。

  4. 「ブラウズ (Browse)」メニューから「ソフトウェア (Software)」を選択します。

    「ソフトウェア (Software)」ウィンドウが表示されます。

  5. 「編集 (Edit)」メニューから「追加 (Add)」を選択します。

    「ソース媒体の設定 (Set Source Media)」ウィンドウが表示されます。必要であれば、インストール媒体へのパスを指定して、「OK」をクリックします。デフォルトのパスは、マウント済みの SPARC Solaris CD です。

    「ソフトウェアを追加 (Add Software)」ウィンドウが表示されます。

    Graphic
  6. ローカルシステムにインストールしたいソフトウェアを選択します。

    ウィンドウの「ソフトウェア (Software)」部分で、インストールしたいソフトウェアに対応するチェックボックスをクリックします。

  7. 「追加 (Add)」をクリックします。

    各パッケージがインストールされるごとに、コマンドツールウィンドウが表示され、インストールの出力が表示されます。

    「ソフトウェア (Software)」ウィンドウがリフレッシュされて、追加されたばかりのパッケージが表示されます。

Admintool でパッケージを削除する方法

  1. インストールされたシステムにログインして、スーパーユーザーになります。

    シェルプロンプトに、次のように入力します。


    $ su
    

    UNIX の sysadmin グループ (グループ 14) のメンバーでないかぎり、Admintool でソフトウェアパッケージを追加または削除するためには、スーパーユーザーにならなければなりません。

  2. Admintool を起動します。


    # admintool &
    
  3. 「ブラウズ (Browse)」メニューから「ソフトウェア (Software)」を選択します。

    「ソフトウェア (Software)」ウィンドウが表示されます。

    Graphic
  4. ローカルシステムから削除したいソフトウェアを選択します。

  5. 「編集 (Edit)」メニューから「削除 (Delete)」を選択します。

    本当にソフトウェアを削除するのかどうかを確認するための警告ポップアップウィンドウが表示されます。

  6. 「削除 (Delete)」をクリックして、ソフトウェアを削除したいことを確認します。

    削除するパッケージごとにコマンドツールウィンドウが表示され、もう一度ソフトウェアを削除するのかどうか確認されます。yn、または q を入力します。ソフトウェアを削除することを選択した場合、削除プロセスからの出力が表示されます。