この説明では、「異機種クライアント/サーバー環境」とは、クライアントとサーバーが異なるバージョンの 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 ファイルでパッケージのディレクトリを調べる方法です。
任意のシステムにログインします。
パッケージがあるディレクトリにアクセスできなければなりません。
Sun パッケージファイルのインストール場所を指定します。
$ pkgparam -d device-name pkgid SUNW_PKGTYPE |
-d device-name |
ソフトウェアパッケージの絶対パスを指定する。device-name は、デバイス、ディレクトリ、またはスプールディレクトリのいずれかへのパスにすることができる。-d オプションを使用しないと、pkgparam は、ローカルシステムにインストールされた指定の pkgid のデフォルトのインストール用ディレクトリを返す。 |
pkgid |
ソフトウェアパッケージの名前 |
Solaris ソフトウェアパッケージのインストール場所について報告する特殊パラメータを指定する。パッケージに |
$ 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 システムのルートファイルシステムは通常、サーバーの /export/root/hostname にあります。
パッケージファイルが /usr ファイルシステムにインストールされる場合は、パッケージをサーバーにインストールする必要があります。同機種クライアント/サーバー環境で作業している場合は、表 17-2 を参照して、パッケージのインストール方法を判断してください。異機種クライアント/サーバー環境で作業している場合は、表 17-3 を参照して、パッケージのインストール方法を決定してください。
サーバーにスーパーユーザーとしてログインします。
すでにインストールされているパッケージの中で、追加しようとしているものと同じ名前のパッケージをすべて削除します。
これによって、システムは、追加および削除されたソフトウェアの正しい記録を保持できます。同じアプリケーションの複数のバージョンをシステムで管理したい場合もあります。この方法の概要については 「パッケージの削除に関するガイドライン」を、手順については 「ディスクレスクライアントまたは AutoClient システムのパッケージを削除する方法」を参照してください。
ソフトウェアパッケージをクライアントシステムのルート (/) ファイルシステムに追加します。
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>
これは、パッケージのファイルの一部がインストールされていないことを示します。クライアントが、ソフトウェアを正しく動作させるために必要なすべてのファイルへのアクセスをもっていない可能性があります。
パッケージが正常にインストールされたことを確認するには、サーバーにログインしてスーパーユーザーになり、pkginfo コマンドを使用します。
server# pkginfo -R rootpath | egrep pkgid |
pkginfo コマンドは、インストールされた pkgid に関する 1 行の情報を返します。pkgid がインストールされていない場合、pkginfo は何も表示しません。
pkgchk コマンドを使用して、パッケージが正常にインストールされていることを確認します。
server# pkgchk -R rootpath -v pkgid |
pkgchk はエラーがないと判断した場合は、インストールされたファイルのリストを返します。そうでない場合は、エラーについて報告されます。
今回の 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) から使用できるものと想定しています。pkginfo と pkgchk を使用して、パッケージのファイルが正しくインストールされていることを確認する方法も示しています。
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 |
次の例は、サーバーからディスクレスクライアントのルートファイルシステムへ 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. |
サーバーに、そのディスクレスクライアントと AutoClient システムに必要な OS サービスがあることを確認します。
ホストマネージャを使用して、サーバーで使用可能な OS サービスを確認します。OS サービスを追加したい場合は、ホストマネージャの「サービス追加」機能を使用して追加を行うことができます。詳細については、第 4 章「サーバーとクライアントサポートの管理の手順」を参照してください。
サーバーと、ディスクレスまたは AutoClient システムが同じバージョンの Solaris であるか、ハードウェアプラットフォームが同じかどうかによって、次の手順を決定します。
ディスクレスまたは AutoClient システムと、サーバーの状態 |
手順 |
---|---|
同じ Solaris のリリースと同じハードウェアアーキテクチャ |
この手順は使用しないこと。代わりに、「スタンドアロンシステムにパッケージを追加する方法」の手順を使用する。
|
Solaris のリリースが異なるか、またはハードウェアプラットフォームが異なる (たとえば、Solaris 7 ディスクレスクライアントの Solaris 2.5 サーバー、または SPARC ディスクレスクライアントの x86 サーバー) |
手順 4 に進む。 |
# cp /var/sadm/install/admin/default /var/sadm/install/admin/admin-file |
新しい管理ファイルを編集して、basedir キーワードを設定します。
テキストエディタを使用して新しい管理ファイルを編集し、basedir キーワードを、クライアントをサポートする OS サービスへの正しいパスに設定します。
basedir=/export/exec/Solaris_2.7_platform.all/usr
Solaris_2.7 |
Solaris バージョン番号を示す。たとえば、Solaris_2.7 など。 |
platform |
クライアントのハードウェアアーキテクチャーを示す。たとえば、Solaris_2.7_i386.all や Solaris_2.7_sparc.all などにおける i386 や sparc など。 |
ソフトウェアパッケージをサーバーに追加します。
管理ファイルは、パッケージを、クライアントに適した /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? |
このプロンプトには、yes、no、または quit のいずれかで応答します。複数のパッケージが指定されている場合は、no と入力して、インストール中のパッケージのインストールを中止してください。pkgadd は、他のパッケージのインストールを続けます。インストールを中止するには、quit と入力してください。
パッケージが正常にインストールされたことを確認するには、pkginfo コマンドを使用します。
# pkginfo pkgid* |
pkginfo コマンドは、インストールされているパッケージのすべてについて表示します。通常、pkgadd は、すでにインストールされたパッケージと重複するバージョンを、pkgid.1、pkgid.2 としてインストールします。
pkgchk コマンドを使用して、パッケージが正常にインストールされていることを確認します。
# pkgchk -v pkgid |
pkgchk は、指定されたパッケージにエラーがないと判断した場合は、インストールされたファイルのリストを返します。そうでない場合は、エラーについて報告します。
次の例では、/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 |