ソフトウェアの管理には、スタンドアロンシステム、サーバー、およびそのクライアントへのソフトウェアの追加やソフトウェアの削除が含まれます。この章では、ソフトウェアのインストールや管理に使用できる各種ツールについて説明します。
この章では、新しいシステムでの Solaris ソフトウェアのインストールについては説明しません。また、新バージョンの Solaris ソフトウェアのインストールやアップグレードについても説明しません。Solaris ソフトウェアのインストールやアップグレードについては、『Solaris 9 4/04 インストールガイド』を参照してください。
この章の内容は次のとおりです。
ソフトウェアを管理するための手順については、第 23 章「ソフトウェアの管理 (手順)」を参照してください。
この節では、この Solaris リリースの新しいソフトウェア管理機能について説明します。
Solaris 9 12/03 – この Solaris リリースでは、拡張された pkgadd コマンドと patchadd コマンドを使うことで、デジタル署名を含む Solaris パッケージと Solaris パッチを安全にダウンロードできるようになりました。
以前の Solaris リリースでは、Solaris パッチ管理ツールをダウンロードし、smpatch コマンドと PatchPro を併用することで、署名付きパッチの管理を行えました。smpatch コマンドを使って署名付きパッチを管理する手順については、『Signed Patches Administration Guide for PatchPro 2.2』(英語版) の「Managing Signed Patches by Using Solaris Patch Management Tools (Tasks)」を参照してください。
署名付きパッケージの概要については、第 24 章「Solaris パッチの管理 (概要)」を参照してください。
patchadd コマンドを使って署名付きパッチを追加する手順については、patchadd コマンドによる署名付きパッチの追加 (作業マップ)を参照してください。
pkgadd コマンドを使って署名付きパッケージを追加する手順については、署名付きパッケージの追加と削除 (作業マップ)を参照してください。
Solaris 9 4/03 – prodreg コマンドのオプションを使って、コマンド行から Solaris Product Registry にアクセスし、管理できます。
prodreg コマンドを使ってソフトウェアパッケージを管理する方法については、Solaris Product Registry のコマンド行インタフェースによるソフトウェアの管理 (作業マップ)を参照してください。
この節では、Solaris 9 リリースの新しいソフトウェア管理機能について説明します。
Solaris 2.6、7、8、9 リリースのすべてのパッチには、デジタル署名が付いています。有効なデジタル署名は、署名が適用された以降にパッチの変更が行われていないことを保証します。
署名付きパッチには、パッチがシステムに適用される前に確認できるデジタル署名が含まれているため、パッチのダウンロードやパッチの適用を安全に行うことができます。
署名付きパッチは、JavaTM アーカイブ形式のファイル (abc.jar) 内に格納され、SunSolve OnlineSM から入手できます。
smpatch コマンドを使って署名付きパッチを追加する方法については、『Signed Patches Administration Guide for PatchPro 2.2』(英語版) の「Managing Signed Patches by Using Solaris Patch Management Tools (Tasks)」を参照してください。
Solaris Product Registry 3.0 は、ソフトウェアパッケージのインストールとアンインストールを行うための GUI ツールです。
この製品を使ってソフトウェアパッケージを管理する方法については、Solaris Product Registry の GUI によるソフトウェアの管理 (作業マップ)を参照してください。
SolarisTM Web Start プログラムを使用して Solaris 9 Update リリースにアップグレードするときに、パッチアナライザを使用すると、システムの分析が行われて、Solaris Update リリースへのアップグレードによってどのパッチ (存在する場合) が削除またはダウングレードされるかが確認されます。Solaris 9 リリースにアップグレードするときは、パッチアナライザを使用する必要はありません。
Solaris 9 Update リリースへのアップグレード時にこのツールを使用する方法については、『Solaris 9 4/04 インストールガイド』の「Solaris Update リリースへのアップグレード (作業)」を参照してください。
Solaris 管理コンソールには、パッチを管理するための新しいパッチツールが用意されています。このパッチツールを使用するだけで、Solaris 9 リリースを実行しているシステムにパッチを追加できます。
Solaris 管理コンソールの起動方法については、スーパーユーザーまたは役割としてコンソールを起動する方法を参照してください。
ソフトウェアを管理する手順については、次の表を参照してください。
ソフトウェア管理作業 |
参照先 |
---|---|
Solaris ソフトウェアのインストール | 『Solaris 9 4/04 インストールガイド』 |
インストール後の Solaris ソフトウェアパッケージの追加または削除 | |
インストール後の Solaris パッチの追加または削除 | |
ソフトウェアパッケージ問題の障害追跡 |
『Solaris のシステム管理 (上級編)』の「ソフトウェアパッケージで発生する問題の解決 (手順)」 |
ソフトウェア管理には、ソフトウェア製品のインストールと削除が含まれます。Sun および Sun 以外のベンダーは、「パッケージ」という形式でソフトウェア製品を提供しています。
「パッケージング」という用語は一般に、ソフトウェア製品が使用されるシステムに、その製品を配布してインストールする方法を指します。パッケージは、定義済みフォーマットによるファイルとディレクトリの集まりです。このフォーマットは、アプリケーションバイナリインタフェース (ABI) に準拠します。ABI は、System V インタフェース定義を補足するものです。Solaris オペレーティング環境には、このフォーマットを解釈し、パッケージをインストールまたは削除したり、パッケージインストールを検査したりする方法を提供する 1 組のユーティリティがあります。
パッチは、既存のソフトウェアの正常な実行の妨げとなっているファイルとディレクトリを置換または更新するためのファイルとディレクトリの集まりです。パッチの詳細については、第 24 章「Solaris パッチの管理 (概要)」を参照してください。
パッケージにはデジタル署名を含めることができます。有効なデジタル署名付きのパッケージは、署名が適用された以降はパッケージの変更が行われていないことを保証します。署名付きパッケージを使用すると、パッケージをシステムに追加する前にデジタル署名を検証できるため、パッケージを安全にダウンロードまたは追加できます。
同じことが、署名付きパッチにも言えます。有効なデジタル署名付きのパッチは、署名が適用された以降はパッチの変更が行われていないことを保証します。署名付きパッチを使用すると、パッチをシステムに追加する前にデジタル署名を検証できるため、パッチを安全にダウンロードまたは追加できます。
署名付きパッチをシステムに追加する方法については、patchadd コマンドによる署名付きパッチの追加 (作業マップ)を参照してください。
署名付きパッケージを作成する方法については、『Application Packaging Developer's Guide (英語版)』を参照してください。
署名付きパッケージは、デジタル署名が含まれる点以外は、署名なしパッケージとまったく同一です。署名付きパッケージのインストール、照会、または削除は、既存の Solaris パッケージングツールを使って行えます。また、署名付きパッケージと署名なしパッケージは、バイナリレベルでも互換性があります。
デジタル署名されたパッケージまたはパッチをシステムに追加するには、信頼される証明書を使ってパッケージキーストアを設定しておく必要があります。これらの証明書は、パッケージやパッチ上のデジタル署名の有効性を確認する際に使用されます。
次の表は、署名付きパッケージおよびパッチに関する一般的な用語の一覧です。
署名付きパッケージまたはパッチをシステムに追加する手順は、基本的に次の 3 つから構成される。
pkgadm コマンドを使ってシステムのパッケージキーストアに証明書を追加する
(省略可能) pkgadm コマンドを使って証明書を一覧表示する
pkgadd コマンドを使ってパッケージを追加するか、patchadd コマンドを使ってパッチを追加する
署名付きパッケージをシステムに追加する手順については、署名付きパッケージの追加と削除 (作業マップ)を参照してください。署名付きパッチをシステムに追加する手順については、patchadd コマンドによる署名付きパッチの追加 (作業マップ)を参照してください。
「ストリーム形式」の SVR4 署名付きのパッケージまたはパッチには、PEM でコード化された PKCS7 署名が埋め込まれています。この署名には少なくとも、パッケージまたはパッチの暗号化されたダイジェストと署名者の X.509 公開鍵証明書とが含まれています。また、パッケージまたはパッチには「証明書チェーン」を含めることもできます。証明書チェーンを使うと、署名者の証明書からローカルに格納されている信頼される証明書へ、信頼関係のチェーンを形成することができます。
PEM でコード化された PKCS7 署名を使って、次のことを検証します。
そのパッケージに署名したエンティティがそのパッケージの作成者である
そのエンティティが実際にそのパッケージに署名した
そのパッケージがエンティティによる署名後に変更されていない
そのパッケージに署名したエンティティが信頼されたエンティティである
次の表は、署名付きパッケージおよびパッチに関する暗号化関連の用語の一覧です。
Sun Microsystems から発行された認証済みデジタル署名を使って、ダウンロードされたパッケージやパッチが改ざんされていないことを検証できます。こうした証明書は、システムのキーストアにインポートされます。
Sun のすべての証明書は、先頃 GTE CyberTrust を買収した Baltimore Technologies によって発行されています。
Sun の証明書をインポートするときに特別なパスワードを使用することで、キーストアへのアクセスを保護できます。
pkgadm listcert コマンドを使えば、ローカルのパッケージキーストア内に格納されている証明書の情報を表示できます。たとえば、次のようになります。
# pkgadm listcert -P pass:store-pass Keystore Alias: GTE CyberTrust Root Common Name: GTE CyberTrust Root Certificate Type: Trusted Certificate Issuer Common Name: GTE CyberTrust Root Validity Dates: <Feb 23 23:01:00 1996 GMT> - <Feb 23 23:59:00 2006 GMT> MD5 Fingerprint: C4:D7:F0:B2:A3:C5:7D:61:67:F0:04:CD:43:D3:BA:58 SHA1 Fingerprint: 90:DE:DE:9E:4C:4E:9F:6F:D8:86:17:57:9D:D3:91:BC:65:A6... |
次の表は、pkgadm listcert コマンドの出力を一覧にまとめたものです。
証明書を認証するには、各証明書の MD5 ハッシュおよび SHA1 ハッシュ (「フィンガープリント」とも呼ばれる) を、発行者によって公開されている既知の正しいフィンガープリントと比較します。
SunSolve Online は、以下の証明書を使って署名付きパッチ上のデジタル署名を検証します。なお、その際、PatchPro を含む以前の Solaris パッチ管理ツール (smpatch コマンド) を使います。
ルート CA 証明書と呼ばれるトップレベルの証明書
Class B CA 証明書と呼ばれるサブ CA (Sun Microsystems Inc.) による証明書
Sun EnterpriseTM Services によって発行される、「パッチ管理証明書」と呼ばれる証明書
「証明書発行局」は、パッチ上のデジタル署名の復号時に使用される公開鍵と、こうした公開鍵の所有者の関係を認証します。
Sun ルート CA 証明書、Sun Class B CA 証明書、およびパッチ署名証明書は、PatchPro を含む Solaris パッチ管理ツールに含まれています。この 3 つの証明書により、Sun のルート CA 証明書から Class B CA 証明書、Class B CA 証明書からパッチ管理証明書にさかのぼってパッチの信頼性を検証する認証チェーンが構成されます。最終的に、Sun のルート CA は、GTE CyberTrust CA によって認証されます。
署名付きパッケージおよびパッチを追加するための Sun の信頼される証明書を取得するには、次の方法を使います。
Java キーストア – Sun のルート CA 証明書をインポートします。この証明書は、この Solaris リリースをインストールする際に Java キーストア内にデフォルトで格納されます。
Sun の PKI (Public Key Infrastructure) サイト – システム上に Java キーストアが存在していない場合は、以下のサイトから証明書をインポートできます。
PatchPro のキーストア – smpatch コマンドを使って署名付きパッチを追加するための PatchPro がすでにインストールされている場合、Java キーストアから Sun のルート CA 証明書をインポートできます。
以前の Solaris リリースでは、パッチ管理ツールをダウンロードし、keytool コマンドを使って証明書をインポートすることで、PatchPro が使用する Java キーストアを作成することができました。
証明書の格納された Java キーストアがシステム上にすでに存在している場合、Sun Microsystems のルート CA 証明書を Java キーストアから keytool コマンドを使ってエクスポートできます。続いて、その証明書を、pkgadm コマンドを使ってパッケージキーストア内にインポートします。
ルート CA 証明書のパッケージキーストアへのインポートが完了すると、pkgadd コマンドや patchadd コマンドを使って署名付きパッケージおよびパッチをシステムに追加できるようになります。
なお、Sun Microsystems のルート証明書が必要となるのは、Sun が署名したパッチやパッケージを追加する場合のみです。
証明書をパッケージキーストアにインポートする手順については、信頼される証明書をパッケージキーストアにインポートする方法 (pkgadm addcert)を参照してください。
pkgadd コマンドを使って署名付きパッケージを追加するための完全な手順については、署名付きパッケージの追加と削除 (作業マップ)を参照してください。
Solaris リリースをシステムにインストールした後でソフトウェアパッケージをシステムに追加したり、システムから削除するためのツールは、次のとおりです。
表 22–1 ソフトウェアパッケージツール
ソフトウェアパッケージ情報の追加、削除、表示に使用するツール |
追加機能 |
---|---|
Solaris Web Start プログラム |
インストーラを起動して、Solaris 9 メディアパックに含まれている製品を追加する。個々のソフトウェアパッケージを追加することはできない |
Solaris Product Registry (GUI) |
インストーラを起動して、ソフトウェア製品情報を追加、削除、または表示する。Solaris Web Start プログラムや Solaris pkgadd コマンドを使って初めからインストールされているソフトウェア製品に関する情報を削除または表示する場合は、Solaris Product Registry を使用する |
Solaris Product Registry prodreg ビューア (コマンド行インタフェース) |
prodreg コマンドでは、Solaris Web Start プログラムや Solaris pkgadd コマンドを使ってインストールされているソフトウェア製品に関する情報を削除または表示できる |
パッケージコマンド (pkgadd、pkgrm、pkginfo) |
これらのコマンドをスクリプトに組み込む、オプションのファイルを設定してユーザーの対話操作を省略したり特別なチェック作業を追加したりする、ソフトウェアパッケージをスプールディレクトリにコピーする |
表 22–1 に記載されているソフトウェア管理ツールはすべて、インストール済みソフトウェアに関する情報の追加、削除、または照会に使用できます。Admintool、Solaris Product Registry の prodreg ビューア、および Web Start プログラムはいずれも、Solaris Product Registry に格納されているインストールデータにアクセスします。pkgadd コマンドや pkgrm コマンドといったパッケージツールでも、インストールデータにアクセスし、管理できます。
パッケージを追加する際、pkgadd コマンドは、ファイルを解凍して、インストール用メディアからローカルシステムのディスクにコピーします。パッケージを削除する際、pkgrm コマンドは、そのパッケージに関連するファイルが他のパッケージと共有されている場合を除いて、それらをすべて削除します。
パッケージファイルはパッケージ形式で配布され、配布されたままの状態では使用できません。pkgadd コマンドは、ソフトウェアパッケージの制御ファイルを解釈してから、製品ファイルを解凍して、システムのローカルディスクにインストールします。
pkgadd と pkgrm の各コマンドは、標準の場所にそのログ出力を記録しませんが、インストールまたは削除される製品を常時監視しています。pkgadd と pkgrm の各コマンドは、インストールまたは削除されたパッケージに関する情報をソフトウェア製品用データベースに格納します。
このデータベースを更新することによって、pkgadd と pkgrm の各コマンドは、システムにインストールされているすべてのソフトウェア製品の記録を保持します。
使用中のシステムでパッケージのインストールまたは削除を行う場合は、次の点に注意する必要があります。
パッケージの命名規則 – Sun パッケージは、SUNWaccr、SUNWadmap、SUNWcsu などのように、必ず接頭辞 SUNW で始まります。Sun 以外のパッケージは、通常、その会社を表す接頭辞で始まります。
インストール済みのソフトウェア – Web Start プログラム、Solaris Product Registry の prodreg ビューア (GUI または CLI)、Admintool、または pkginfo コマンドを使って、システムにインストールされているソフトウェアを特定できます。
サーバーとクライアントによるソフトウェアの共有の状態 – クライアントのソフトウェアは、一部がサーバーに、一部がクライアントに置かれる場合があります。このような場合、クライアントにソフトウェアを追加するには、サーバーとクライアントの両方にパッケージを追加する必要があります。
パッケージを削除するときは、rm コマンドを代わりに使いたい場合でも、これらのツールのいずれかを使用する必要があります。たとえば、rm コマンドを使用すると、バイナリ実行可能ファイルを削除することができますが、これは pkgrm コマンドを使用してバイナリ実行可能ファイルを含むソフトウェアパッケージを削除する場合とは異なります。rm コマンドを使用してパッケージのファイルを削除すると、ソフトウェア製品用データベースが破壊されます。1 つのファイルだけを削除したい場合は、removef コマンドを使用します。このコマンドは、該当ファイルがパッケージから削除されるように、ソフトウェア製品データベースを正しく更新します。詳細については、removef(1M) のマニュアルページを参照してください。
複数のバージョンのパッケージ (たとえば、複数バージョンの文書処理アプリケーション) をインストールしておきたい場合は、pkgadd コマンドを使用して、すでにインストール済みのパッケージとは異なるディレクトリに新しいバージョンをインストールしてください。パッケージがインストールされているディレクトリは、ベースディレクトリと呼ばれます。ベースディレクトリは、管理ファイルと呼ばれる特殊ファイルに basedir キーワードを設定することによって操作できます。管理ファイルの使用方法とベースディレクトリの設定方法については、パッケージ追加時のユーザーの対話操作を省略する (pkgadd) と、admin(4) のマニュアルページを参照してください。
Solaris ソフトウェアをインストールするときにアップグレードオプションを使用すると、Solaris インストール用ソフトウェアは、ソフトウェア製品用データベースを調べて、すでにシステムにインストールされている製品があるかどうかを確認します。
pkgadd -a コマンドを使用すると、特殊な管理ファイルを調べて、インストールの進め方についての情報を入手できます。通常、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 networktimeout=60 networkretries=3 authentication=quit keystore=/var/sadm/security proxy= basedir=default |
パッケージを追加するときにユーザーの対話操作を省略する以外にも、いろいろな目的で管理ファイルを使用できます。たとえば、管理ファイルを使用すれば、エラーが発生した場合に (ユーザーの対話操作なしに) パッケージのインストールを終了したり、pkgrm コマンドでパッケージを削除する場合に対話操作を省略できます。
また、特別なインストールディレクトリをパッケージに割り当てることもできます。この方法は、1 つのシステム上で複数のバージョンのパッケージを管理する場合に役に立ちます。これを行うには、パッケージがインストールされる場所を示す代替ベースディレクトリを管理ファイル内に設定します (basedir キーワードを使用)。詳細については、admin(4) のマニュアルページを参照してください。
応答ファイルには、「対話型パッケージ」で尋ねられる特定の質問に対するユーザーの応答が格納されます。対話型パッケージには、パッケージをインストールする前にいくつかの質問 (たとえば、パッケージのオプションをインストールするかどうかなど) をユーザーに尋ねる request スクリプトが格納されています。
インストールするパッケージが対話型パッケージであることがインストール前にわかっていて、さらにそのパッケージをこの先インストールするときにユーザーの対話操作を省略できるように応答を格納しておきたい場合は、pkgask コマンドを使用してユーザーの応答を保存できます。このコマンドの詳細については、pkgask(1M) のマニュアルページを参照してください。
request スクリプトが尋ねる質問への応答を格納した後は、pkgadd -r コマンドを使用して、ユーザーの対話操作なしにパッケージをインストールすることができます。