Solaris のシステム管理

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

この説明では、「異機種クライアント/サーバー環境」とは、クライアントとサーバーが異なるバージョンの Solaris を実行しているか、またはハードウェアプラットフォームが異なる (たとえば、Solaris 2.6 クライアントの 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.6
/Product SUNWvolr SUNW_PKGTYPE
root
$ pkgparam -d /cdrom/cdrom0/s0/Solaris_2.6/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 からディスクレスクライアントのルートファイルシステムへパッケージをインストールする

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

server# pkgadd -R /export/root/client-1 
-d /cdrom/cdrom0/s0/Solaris_2.6/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 2.6 ディスクレスクライアントの Solaris 2.3 サーバー、または 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.x_platform.all/usr

    Solaris_2.x

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

    platform

    クライアントのハードウェアアーキテクチャーを示す。たとえば、Solaris_2.6_i386.allSolaris_2.6_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