ソフトウェアの管理には、スタンドアロンシステム、サーバー、およびそのクライアントへのソフトウェアの追加、また、ソフトウェアの削除が含まれます。この章では、ソフトウェアのインストールと管理についての概要を示します。ここでは Solaris ソフトウェアのインストールについては説明しません。
この章の内容は次のとおりです。
ソフトウェアを管理する手順については、次を参照してください。
手順 |
参照先 |
---|---|
Solaris ソフトウェアのインストール |
『Solaris 8 インストールガイド (SPARC 版)』または『Solaris 8 インストールガイド (Intel 版)』 |
Solaris 8 をインストールした後のソフトウェア追加と削除 | |
インストール後の Solaris パッチの追加または削除 | |
ソフトウェア管理の問題の解決 |
『Solaris のシステム管理 (第 2 巻)』の「ソフトウェア管理の問題の解決」 |
今回のリリースの Solaris には、新しいソフトウェア管理ツール Solaris Product Registry が含まれています。Solaris 8 リリースをインストールした後、Product Registry は Solaris Web Start 3.0 または Solaris パッケージ管理コマンドでインストールしたすべてのソフトウェアのリストを提供します。Product Registry を表示するには、コマンド行で /usr/bin/prodreg と入力します。
詳細は、『Solaris 8 インストールガイド (SPARC 版)』または『Solaris 8 インストールガイド (Intel 版)』の「Product Registry によるソフトウェアの追加と削除」を参照してください。
ソフトウェア管理には、ソフトウェア製品のインストールと削除が含まれます。Sun およびそのサードパーティベンダーは、ソフトウェアパッケージングと呼ばれる形式で製品を提供しています。(パッケージングという用語は一般に、ソフトウェア製品が使用されるシステムに、その製品を配布してインストールする方式を指します。) パッケージの最も単純な形式としては、定義済みフォーマットのファイルとディレクトリの集合を考えることができます。このフォーマットは、アプリケーションバイナリインタフェース (ABI) に準拠します。この ABI は、System V インタフェース定義を補足するものです。Solaris オペレーティング環境には、このフォーマットを解釈して、パッケージをインストールまたは削除したり、インストールを検査する方法を提供するユーティリティがあります。
システムにソフトウェアを追加したり、システムから削除するために、次の 3 つのツールがあります。
パッケージコマンド (pkgadd、pkgrm、pkginfo)
Admintool (システム管理ツール)
次の表に、ソフトウェアを管理するとき、pkgadd コマンドや pkgrm コマンドよりも Admintool を使用する利点を説明します。
表 20-1 Admintool のソフトウェア管理機能
ソフトウェア管理作業 |
Admintool を使用して実行可能かどうか |
---|---|
スタンドアロンシステム、またはサーバーシステムでのパッケージの追加と削除 |
可能 |
インストールされたソフトウェアすべての簡単な表示 |
可能 |
インストール用媒体上のパッケージの簡単な表示と選択 |
可能 |
スプールディレクトリへのパッケージの追加 |
不可 |
管理ファイルを使用したユーザー対話操作の省略 |
不可 |
初期の Solaris リリースでは、ソフトウェアの追加、削除を行うグラフィカルユーザーインタフェースのツールとしてソフトウェアマネージャ (swmtool コマンドでアクセス) を使用しました。swmtool コマンドを Solaris 2.5 および以降の互換バージョンで使用すると、Admintool が起動します。
pkgadd コマンドと pkgrm コマンド、または Admintool はソフトウェアを追加したり削除したりするのに使用します。Admintool は pkgadd コマンドと pkgrm コマンドのグラフィカルインタフェースです。
パッケージを追加する際、pkgadd ソフトウェアは、ファイルを解凍して、インストール用媒体からローカルシステムのディスクにコピーします。パッケージを削除する際、pkgrm コマンドは、そのパッケージに関連するファイルが他のパッケージと共有されている場合を除いて、それらをすべて削除します。
パッケージファイルはパッケージフォーマットで配布され、配布されたままの状態では使用できません。pkgadd コマンドは、ソフトウェアパッケージの制御ファイルを解釈してから、製品ファイルを解凍して、システムのローカルディスクにインストールします。
pkgadd コマンドと pkgrm コマンドは、標準の場所にそのログ出力を記録しませんが、インストールまたは削除された製品について追跡を行います。pkgadd と pkgrm は、インストールまたは削除されたパッケージに関する情報をソフトウェア製品データベースに格納します。
このデータベースを更新することによって、pkgadd および pkgrm の各コマンドは、システムにインストールされたすべてのソフトウェア製品の記録を追跡します。
システムでパッケージのインストールまたは削除を行うにあたっては、次のことを知っておく必要があります。
パッケージの命名規則 - Sun パッケージは、SUNWvolr、SUNWadmap、SUNWab2m などのように、必ず接頭辞 SUNW で始まります。サードパーティのパッケージは、通常、その会社を表す接頭辞で始まります。
インストール済みのソフトウェア - Solaris Product Registry、Admintool、または pkginfo コマンドを使用して、システムにインストール済みのソフトウェアを表示できます。
サーバーとクライアントによるソフトウェアの共有の状態 - クライアントのソフトウェアは、一部がサーバーに、一部がクライアントに置かれる場合があります。このような場合、クライアントにソフトウェアを追加するには、サーバーとクライアントの両方にパッケージを追加する必要があります。(これ以降の節でクライアントソフトウェアの管理方法について詳しく説明します。)
スタンドアロンシステムでのソフトウェアの管理は、パッケージのインストール用ツールと規則を理解すれば、かなり簡単なものです。ソフトウェアパッケージをシステムのローカルディスクにインストールするだけで、そのソフトウェアを使用できるようになります。しかし、クライアントシステム上でソフトウェアを管理する方法は、これよりも難しくなります。ソフトウェアがサーバーとクライアントに分かれて置かれる場合には特に困難です。(たとえば、1 つのソフトウェアに、クライアントのルートファイルシステムにインストールされるファイルを持つパッケージと、クライアントが通常サーバーからマウントする /usr ファイルシステムにインストールされるファイルを持つパッケージがある場合などです。)
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 オプションを指定すれば、ユーザーの対話操作なしにパッケージをインストールできます。