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

第 16 章 ソフトウェア管理の概要

ソフトウェアの管理には、スタンドアロンシステム、サーバー、およびそのクライアントへのソフトウェアのインストール、また、ソフトウェアの削除が含まれます。この章では、ソフトウェアのインストールと管理についての概要を示します。ここでは Solaris ソフトウェアのインストールについては説明しません。

この章の内容は次のとおりです。

ソフトウェア管理についての参照先

ソフトウェアを管理する手順については、次を参照してください。

ソフトウェアパッケージ

ここで説明するソフトウェア管理には、ソフトウェア製品のインストールと削除が含まれます。Sun およびそのサードパーティベンダーは、ソフトウェアパッケージと呼ばれる形式で製品を提供しています。(パッケージという用語は一般に、ソフトウェア製品が使用されるシステムに、その製品を配布し、インストールする方式を指します。) パッケージの最も単純な形式としては、定義済みフォーマットのファイルとディレクトリの集合を考えることができます。このフォーマットは、アプリケーションバイナリインタフェース (ABI) に準拠します。この ABI は、System V インタフェース定義を補足するものです。Solaris オペレーティング環境には、このフォーマットを解釈して、パッケージをインストールまたは削除したり、インストールを検査する方法を提供するユーティリティがあります。

ソフトウェア管理ツール

システムにソフトウェアを追加したり、システムから削除するために、次の 2 つのツールがあります。

これらのどちらを使用してもかまいませんが、それぞれに長所を持っています。

pkgadd コマンドと pkgrm コマンドには柔軟性があります。たとえば、これらのコマンドをスクリプトに組み込んだり、オプションのファイルを設定してユーザーの対話操作や特別なチェック作業をなくしたり、また、ソフトウェアパッケージをスプールディレクトリにコピーすることができます。すでに pkgadd コマンドと pkgrm コマンドによるパッケージの追加と削除に詳しいユーザーの場合は、これらのコマンドを引き続き使用した方が簡単です。

Admintool を使うとソフトウェアの追加、削除が容易になります。Admintool は pkgadd コマンドと pkgrm コマンドのグラフィカルインタフェースであり、オンラインヘルプが組み込まれています。Admintool の グラフィカルブラウザは、すでにシステムにインストールされているソフトウェアや、インストール用媒体に入っているソフトウェアを表示するのに特に適しています。ソフトウェアパッケージの命名規則やコマンド行オプションの使用方法にまだ慣れていないユーザー、また、一度に 1 つのシステムでしかソフトウェアの管理を行わないユーザーの場合は、Admintool を使用して、ソフトウェアの追加、削除を行うことをお勧めします。

表 16-1 は、ソフトウェアの管理に、Admintool を使用した場合と、pkgadd コマンドと pkgrm コマンドを使用した場合を比較したものです。

表 16-1 Admintool のソフトウェア管理機能

ソフトウェア管理作業 

Admintool を 使用して実行可能かどうか 

スタンドアロンシステム、サーバーシステム、またはディスクレスクライアントでのパッケージの追加と削除 

可能 

インストールされたソフトウェアすべての簡単な表示 

可能 

インストール用媒体上のパッケージの簡単な表示と選択 

可能 

スプールディレクトリへのパッケージの追加 

不可 

管理ファイルを使用したユーザー対話操作の省略 

不可 

Solaris 2.5 より前のリリースでは、ソフトウェアの追加、削除を行うグラフィカルユーザーインタフェースのツールとしてソフトウェアマネージャ (swmtool コマンドでアクセス) を使用しました。Solaris 2.5 および以降の互換バージョンでは Admintool (admintool コマンドでアクセス) を使用できます。swmtool コマンドを Solaris 2.5 および以降の互換バージョンで使用すると、Admintool が起動します。

パッケージの追加または削除時の動作

pkgadd コマンドと pkgrm コマンド、または Admintool はソフトウェアを追加したり削除したりするのに使用します。Admintool は pkgadd コマンドと pkgrm コマンドのグラフィカルインタフェースです。

パッケージを追加する際、pkgadd ソフトウェアは、ファイルを解凍して、インストール用媒体からローカルシステムのディスクにコピーします。パッケージを削除する際、pkgrm コマンドは、そのパッケージに関連するファイルが他のパッケージと共有されている場合を除いて、それらをすべて削除します。

パッケージファイルはパッケージフォーマットで配布され、配布されたままの状態では使用できません。pkgadd コマンドは、ソフトウェアパッケージの制御ファイルを解釈してから、製品ファイルを解凍して、システムのローカルディスクにインストールします。

pkgadd コマンドと pkgrm コマンドは、標準の場所にそのログ出力を記録しませんが、インストールまたは削除された製品について追跡を行います。pkgaddpkgrm は、インストールまたは削除されたパッケージに関する情報をソフトウェア製品データベースに格納します。

このデータベースを更新することにより、pkgadd および pkgrm の各コマンドは、システムにインストールされたすべてのソフトウェア製品の記録を追跡します。

パッケージを追加または削除する前に知っておくこと

システムでパッケージのインストールまたは削除を行うにあたっては、次のことを知っておく必要があります。

クライアントソフトウェア管理に関するガイドライン

スタンドアロンシステムでのソフトウェアの管理は、パッケージのインストール用ツールと規則を理解すれば、かなり簡単なものです。ソフトウェアパッケージをシステムのローカルディスクにインストールするだけで、そのソフトウェアを使用できるようになります。しかし、クライアントシステム上でソフトウェアを管理する方法は、これよりも難しくなります。ソフトウェアがサーバーとクライアントに分かれて置かれる場合には特に困難です。(たとえば、1 つのソフトウェアに、クライアントのルートファイルシステムにインストールされるファイルを持つパッケージと、クライアントが通常サーバーからマウントする /usr ファイルシステムにインストールされるファイルを持つパッケージがある場合などです。)

Solaris は、ディスクレスクライアントと Solstice AutoClient システムをサポートしています。ディスクレスクライアントと AutoClient システムでは、すべてのソフトウェアがサーバー上に置かれます。たとえば、ソフトウェアパッケージをディスクレスクライアントに追加する場合、ローカルディスクに記憶デバイスがないため、実際にはそのクライアントにパッケージをインストールしません。代わりに、サーバー、またはクライアントのルートファイルシステム (サーバー上にある)、あるいはこの両方にパッケージを追加します。ディスクレスまたは AutoClient システムのルートファイルシステムは、通常、サーバー上の /export/root/hostname です。

AutoClient システムにはディスク領域がありますが、これはキャッシュのためにのみ使用されます。ソフトウェアはサーバー上に置かれます。(詳細は『Solstice AutoClient 2.1 管理者ガイド』を参照してください。)

ディスクレスクライアントと AutoClient システムは、そのルートファイルシステムとサーバーの /usr (または他の共有ファイルシステム) に分かれてインストールされる場合があるため、ソフトウェアパッケージをこれらのクライアントに追加するときには、ソフトウェアパッケージがどのファイルシステムにインストールされるかを知る必要があります。

Sun パッケージをサーバーおよびクライアントへインストールする

ディスクレスクライアントと AutoClient システムにパッケージを追加する場合は、これらのパッケージのファイルがどこにインストールされるかを知る必要があります。つまり、クライアントのルートファイルシステムか、サーバーの /usr ファイルシステム (またはクライアントと共有される他のいずれかのファイルシステム) のどちらかです。

Sun ソフトウェアパッケージの多くは、そのインストール場所を示すように命名されています。たとえば、SUNWvolr パッケージはルートファイルシステムにインストールされ、SUNWvolu パッケージは /usr ファイルシステムにインストールされます。「r」という接尾辞はルートを、「u」という接尾辞は /usr を表します。しかし、Sun パッケージのファイルのインストール場所を判断する最も確実な方法は、SUNW_PKGTYPE パラメータを調べることです。これは、パッケージの pkginfo ファイルに設定されています。pkginfo ファイルを調べるためのインタフェースについては、「パッケージファイルのインストール場所を決定する方法」で説明します。

Sun パッケージの一部には、対応する SUNW_PKGTYPE パラメータがありません。これらのパッケージは、通常、/opt にインストールされるように設定されています。Sun パッケージに SUNW_PKGTYPE パラメータ値がないときは、それをインストールするときに、サードパーティパッケージとして扱ってください。(詳細については、「サードパーティパッケージをサーバーおよびクライアントへインストールする」を参照してください。)

ディスクレスクライアントまたはデータレスクライアントに Sun パッケージをインストールするときは、表 16-2 の一般的なガイドラインに従ってください。

表 16-2 クライアントへの Sun パッケージのインストール

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

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

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

クライアントまたはクライアントのルートファイルシステム 

/usr (または他のいずれかの共有ファイルシステム)

サーバー

サードパーティパッケージをサーバーおよびクライアントへインストールする

サードパーティパッケージは、SUNW_PKGTYPE パラメータを使用しません。このため、パッケージファイルのインストール場所を判断する簡単な方法はありません。最も確実な方法は、パッケージの pkgmap ファイルを調べることです。この情報に基づいて、表 16-2 のガイドラインに従ってインストールを行うことができます。ただし、パッケージの pkgmap ファイルを調べる手間を省きたい場合は、次の手順に従ってください。これは、サードパーティパッケージをディスクレスクライアントおよび AutoClient システムにインストールするための最も安全な方法です。

  1. サーバーにソフトウェアをインストールします。サーバーがクライアントと共有するすべてが更新されます。(これは、サーバーとクライアントが、同じバージョンの Solaris ソフトウェアを実行し、同じハードウェアプラットフォームで実行されていることを前提としています。たとえば、両方とも x86 システムであるか、両方とも SPARC システムであるなどです。)

  2. ソフトウェアをクライアントにインストールします。使用しているのが pkgadd コマンドか Admintool のいずれであっても、これはクライアントに適したファイルだけをインストールします。pkgadd コマンドまたは Admintool は、サーバーからマウントされたファイルシステムで、すでに存在するソフトウェアはインストールしません。これは、そのソフトウェアが、クライアントによりすでに使用可能になっているためです。

異機種環境でのパッケージのインストール

次の場合には、クライアントとサーバーにおけるソフトウェア管理がさらに複雑になります。

これらは異機種環境と呼ばれます。異機種環境のソフトウェアを管理する場合は、まずサーバーのクライアントに適した正しい Solaris とアーキテクチャサービスを追加する必要があります。これには、ホストマネージャを使用して、モニターに「サービスを追加」します (詳細については、第 4 章「サーバーとクライアントサポートの管理の手順」を参照してください)。

異機種環境でパッケージを追加する方法の詳細については、「異機種クライアント/サーバー環境でのパッケージの追加」を参照してください。

パッケージの削除に関するガイドライン

pkgadd コマンドと pkgrm コマンドは、ソフトウェア製品用データベース内の情報を更新するため、パッケージを削除するときは、rm コマンドではなく、pkgrm コマンドを使用する必要があります。たとえば、rm コマンドを使用すると、バイナリ実行可能ファイルを削除することができますが、これは pkgrm を使用してバイナリ実行可能ファイルを含むソフトウェアパッケージを削除する場合とは異なります。rm コマンドを使用してパッケージのファイルを削除すると、ソフトウェア製品用データベースが破壊されます。 (1 つのファイルだけを削除したい場合には、removef コマンドを使用してください。これは、ソフトウェア製品用データベースを正しく更新します。詳細については、removef(1M) のマニュアルページを参照してください。)

複数のバージョンのパッケージをインストールしておきたい場合は (たとえば、複数バージョンの文書処理アプリケーションなど)、新しいバージョンを、すでにインストールされたパッケージとは異なるディレクトリにインストールしてください。パッケージがインストールされているディレクトリは、ベースディレクトリと呼ばれ、このベースディレクトリは、管理ファイルと呼ばれる特殊ファイルに basedir キーワードを設定することによって操作できます。管理ファイルの使用とベースディレクトリの設定の詳細については、「パッケージ追加時のユーザーの対話操作を省略する」admin(4) のマニュアルページを参照してください。


注 -

Solaris ソフトウェアをインストールするときにアップグレードオプションを使用すると、Solaris インストール用ソフトウェアは、ソフトウェア製品用データベースを検索して、製品がすでにシステムにインストールされているかどうかを判断します。


パッケージ追加時のユーザーの対話操作を省略する

管理ファイルの使用

pkgadd コマンドを -a オプションを指定して実行するとき、pkgadd コマンドは、どのようにインストールを進めるかについての情報を持つ特殊な管理ファイルを参照します。通常、pkgadd はいくつかのチェックを行い、指定されたパッケージを実際に追加する前に、プロンプトを出してユーザーに確認します。ただし、管理ファイルを作成すれば、このようなチェックを省略して、ユーザーの確認なしでパッケージをインストールするように pkgadd に指示できます。

デフォルトでは、pkgadd コマンドは現在の作業用のディレクトリで管理ファイルを探します。現在の作業用ディレクトリの中に管理ファイルを見つけることができなかった場合、pkgadd/var/sadm/install/admin ディレクトリで、指定された管理ファイルを探します。pkgadd コマンドには管理ファイルの絶対パスも使用できます。


注意 - 注意 -

管理ファイルは注意して使用してください。通常は pkgadd が提供するチェックとプロンプトを省略するには、管理ファイルを使用する前に、パッケージのファイルがどこにインストールされているのか、および、パッケージのインストールスクリプトをどのように実行するのかを知っておく必要があります。


次は、pkgadd がパッケージのインストール前にユーザーに確認のプロンプトを出さないようにする管理ファイルの例です。


mail=
instance=overwrite
partial=nocheck
runlevel=nocheck
idepend=nocheck
rdepend=nocheck
space=nocheck
setuid=nocheck
conflict=nocheck
action=nocheck
basedir=default

パッケージを追加するときのユーザーの対話操作を省略する以外にも、いろいろな目的で管理ファイルを使用できます。たとえば、管理ファイルを使用すれば、エラーが発生した場合に、(ユーザーの対話操作なしに) パッケージのインストールを終了できます。また、pkgrm コマンドでパッケージを削除するときの対話を省略できます。

また、特別なインストールディレクトリをパッケージに割り当てることができます。(これは、1 つのシステム上で複数のバージョンのパッケージを管理する場合に役に立ちます。) これを行うには、パッケージがインストールされる場所を指定する、代替ベースディレクトリを管理ファイルに設定します (-basedir キーワードを使用する)。詳細については、admin(4) のマニュアルページを参照してください。

応答ファイルの使用

応答ファイルには、対話型パッケージで尋ねられる特定の質問に対するユーザーの応答が含まれます。対話型パッケージには、パッケージをインストールする前にユーザーに質問する (たとえば、パッケージのオプションをインストールするかどうかなど) request スクリプトが含まれます。

インストールしたいパッケージが対話型パッケージであることを、インストール前に知っている場合、さらに、応答を格納しておいて、当該パッケージの将来のインストール時にユーザーの対話操作を省略したい場合は、pkgask コマンドを使用してユーザーの応答を保存できます。このコマンドの詳細については、pkgask(1M) のマニュアルページを参照してください。

一度 request スクリプトが尋ねる質問への応答を格納すると、pkgadd コマンドに -r オプションを指定すれば、ユーザーの対話操作なしにパッケージをインストールできます。