ソフトウェアの管理には、スタンドアロンシステム、サーバー、およびそのクライアントへのソフトウェアの追加や削除が含まれます。この章では、ソフトウェアのインストールや管理に使用できる各種ツールについて説明します。
この章では、新しいシステムでの Oracle Solaris OS のインストールについては説明しません。また、新バージョンの Oracle Solaris OS のインストールやそれへのアップグレードについても説明しません。Oracle Solaris OS のインストールやアップグレードについては、『Oracle Solaris 10 9/10 インストールガイド (基本編)』を参照してください。
この章の内容は次のとおりです。
ソフトウェアを管理する手順については、第 21 章Oracle Solaris システム管理ツールによるソフトウェアの管理 (手順)および第 22 章Oracle Solaris パッケージコマンドによるソフトウェアの管理 (手順)を参照してください。
Oracle Solaris ゾーンがインストールされているシステムでソフトウェアを管理する方法については、『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』の第 26 章「ゾーンがインストールされている Solaris システムでのパッケージとパッチの追加および削除 (手順)」を参照してください。
この節では、この Oracle Solaris リリースの新しいソフトウェア管理機能について説明します。
新機能の完全な一覧や各 Oracle Solaris リリースの説明については、『Oracle Solaris 10 9/10 の新機能』を参照してください。
Oracle Solaris 10 9/10: 自動登録は、目録作成およびサポートの目的で、お使いのシステムの構成データを収集して Oracle Product Registration System に自動的に登録を行う、組み込みメカニズムです。特権システム管理者は regadm コマンドを使用して、自動登録機能を管理したり、インストールやアップグレードプロセスとは無関係にシステムを明示的に登録したりすることができます。
詳細は、第 17 章Oracle Solaris 自動登録コマンド regadm の操作 (手順)を参照してください。
Oracle Solaris 10 10/09: このリリースから、複数の非大域ゾーンがインストールされているシステムをサポートするために、パッケージおよびパッチツールに対して次の拡張が行われています。
ゾーンの並列パッチ
ゾーンの並列パッチ機能は、標準の Oracle Solaris 10 パッチ適用ツールを強化して、非大域ゾーンに並列してパッチを適用できるようにします。この機能拡張により、システムのパッチにかかる時間が短縮され、複数の非大域ゾーンがシステムにインストールされている場合のパッチ処理のパフォーマンスが向上します。ゾーンは分離された環境のため、複数のゾーンに対する並列パッチを安全に行うことができます。この機能は、疎ルートゾーンおよび完全ルートゾーンの両方に適用されます。
これらの機能強化は、主に patchadd および patchrm コマンドに対する変更によるものです。新しい構成ファイル /etc/patch/pdo.conf は、並列してパッチするゾーンの数を定義する数値を指定するように変更することができます。
Solaris 10 10/09 リリース以上を実行していない場合は、この機能はパッチ 119254-66 以降のリビジョン (SPARC) および 119255-66 以降のリビジョン (x86) で実装されます。これまでどおり、大域ゾーンには、非大域ゾーンよりも前にパッチが適用されます。
詳細は、patchadd(1M) と patchrm(1M)のマニュアルページを参照してください。
SVr4 パッケージコマンドのターボチャージ
この機能は、SVr4 パッケージコマンドを使用して、Solaris OS のインストール、Solaris Live Upgrade の使用、または非大域ゾーンのインストールにかかる時間を短縮します。この機能は無効にできません。
ゾーン環境でのパッケージおよびパッチツールの使用をサポートするこれらの機能強化の詳細については、次のドキュメントを参照してください。
パッチツールが大規模なパッチを処理できるように変更されました。パッチ 119254-42 および 119255-42 以降、パッチインストールコマンド patchadd および patchrm が変更され、新しい機能を提供する特定のパッチの処理方法が変わりました。この変更は、これらのパッチをどの Oracle Solaris OS にインストールする場合にも影響を与えます。これらの「遅延起動」パッチによって、機能パッチで提供される大規模な変更の処理能力が向上します。
詳細は、http://www.sun.com/bigadmin/sundocs/articles/patch-wn.jsp を参照してください。
Common Agent Container は、Java 管理アプリケーションのコンテナを実装する、スタンドアロンの Java プログラムです。このプログラムが提供する管理インフラストラクチャーは、Java Management Extensions (JMX) および Java Dynamic Management Kit (Java DMK) ベースの管理機能向けに設計されています。このソフトウェアは SUNWcacaort パッケージによってインストールされ、/usr/lib/cacao ディレクトリに置かれます。
通常、このコンテナは表示されません。
ただし、次の 2 つの場合は、コンテナデーモンとの対話が必要になることがあります。
Common Agent Container 用に予約されているネットワークポートを、別のアプリケーションが使用しようとしている場合。
証明書ストアが危殆化した場合。この衝突が発生した場合は、Common Agent Container 証明書鍵の再生成が必要になることがあります。
これらの問題のトラブルシューティングの方法については、『Solaris のシステム管理 (上級編)』の「Oracle Solaris OS での共通エージェントコンテナの問題解決」を参照してください。
Oracle Solaris 10: このリリース以降、patchadd - M コマンドの機能が強化され、複数のパッチおよびパッチ間のあらゆる依存関係をもっと効果的かつ効率的に処理できるようになりました。このため、patchadd コマンドの使用時に、パッチ ID を番号順に指定する必要がなくなりました。
パッチ ID を指定しないで patchadd -M コマンドを使用した場合でも、ディレクトリ内のすべてのパッチが自動的にシステムにインストールされます。特定のパッチをインストールする場合は、patchadd - M コマンドを使用するときにそのパッチ ID を指定する必要があります。
詳細は、patchadd(1M) のマニュアルページを参照してください。
Oracle Solaris 10: Oracle Solaris 10 では、パッケージツールとパッチツールが拡張されており、パフォーマンスの向上と機能の強化が図られています。
そうした拡張の一部として、ファイルをパッケージに対応付けするための新しいオプションが、pkgchk コマンドに追加されました。ファイルとパッケージ間のマッピングを行うには、grep -pattern/var/sadm/install/contents の代わりに pkgchk P オプションを使用します。-P オプションでは部分パスが使えます。このオプションを -l オプションと組み合わせると、指定した部分パスを含むファイルの情報が一覧表示されます。詳細は、「インストール済みオブジェクトの整合性を検査する方法 (pkgchk -p、pkgchk -P)」と、pkgchk(1M) のマニュアルページを参照してください。
ソフトウェアを管理する手順については、次の表を参照してください。
ソフトウェア管理作業 |
詳細 |
---|---|
Oracle Solaris 10 のインストール | |
インストール後のソフトウェアパッケージの追加または削除 |
第 21 章Oracle Solaris システム管理ツールによるソフトウェアの管理 (手順)および第 22 章Oracle Solaris パッケージコマンドによるソフトウェアの管理 (手順) |
インストール後の Solaris パッチの追加または削除 | |
ソフトウェアパッケージの問題のトラブルシューティング |
ソフトウェア管理には、ソフトウェア製品のインストールと削除が含まれます。Sun および Sun 以外の ISV は、ソフトウェアを 1 つ以上の「パッケージ」の集まりとして提供します。
「パッケージング」という用語は一般に、ソフトウェア製品が使用されるシステム にその製品を配布してインストールする方法を指します。パッケージは、定義済みフォーマットによるファイルとディレクトリの集まりです。このフォーマットは、アプリケーションバイナリインタフェース (ABI) に準拠します。ABI は、System V インタフェース定義を補足するものです。Solaris OS には、このフォーマットを解釈し、パッケージをインストールまたは削除したり、パッケージインストールを検査したりする方法を提供する 1 組のユーティリティーがあります。
「パッチ」とは、Solaris OS 内またはその他のサポート対象ソフトウェア内の既知または潜在的な問題に対する修正をまとめたものです。また、パッチは、特定のソフトウェアリリースに対する新機能や機能拡張の提供も行います。パッチは、既存のファイルやディレクトリを置換または更新するファイルやディレクトリから構成されます。ほとんどの Solaris パッチは、一連の疎パッケージとして提供されます。
「疎パッケージ」には、そのパッケージが Solaris ディストリビューションの一部として初めて提供されたあとで変更されたオブジェクトのみが含まれます。疎パッケージには、ソフトウェア更新を提供するために完全なパッケージとして再配布した場合よりも小さなパッチが収められています。また、疎パッケージとして提供すると、顧客の環境に対する変更も最小限に抑えられます。パッチの詳細については、「Oracle Solaris オペレーティングシステムでのパッチ管理」を参照してください。
パッケージには、デジタル署名を含めることができます。有効なデジタル署名付きのパッケージは、署名が適用された以降はパッケージの変更が行われていないことを保証します。署名付きパッケージを使用すると、パッケージをシステムに追加する前にデジタル署名を検証できるため、パッケージを安全にダウンロードまたは追加できます。
同じことが、署名付きパッチにも言えます。有効なデジタル署名付きのパッチは、署名が適用された以降はパッチの変更が行われていないことを保証します。署名付きパッチを使用すると、パッチをシステムに適用する前にデジタル署名を検証できるため、パッチを安全にダウンロードまたは適用できます。
署名付きパッチをシステムに「適用」する方法の詳細については、「patchadd コマンドによるパッチの管理 (作業マップ)」を参照してください。
署名付きパッケージの作成方法については、『アプリケーションパッケージ開発者ガイド』を参照してください。
署名付きパッケージは、デジタル署名が含まれる点以外は、署名なしパッケージとまったく同一です。このパッケージのインストール、照会、または削除は、既存の Solaris パッケージツールを使って行うことができます。また、署名付きパッケージと署名なしパッケージは、バイナリレベルで互換性があります。
pkgadd と patchadd を使ってデジタル署名付きのパッケージまたはパッチをシステムに追加するには、信頼される証明書を使ってパッケージキーストアを設定しておく必要があります。これらの証明書は、パッケージやパッチ上のデジタル署名の有効性を確認する際に使用されます。
Oracle の証明書をシステムのパッケージキーストアにインポートするときに特別なパスワードを使用することで、パッケージキーストアへのアクセスを保護できます。
証明書を使って署名付きのパッケージとパッチを検証する手順については、http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/tooldocs/solaris/keytool.html を参照してください。
次では、署名付きのパッケージおよびパッチに関する一般的な用語を説明します。
証明書と鍵を格納するためのリポジトリ。それらの情報が必要になると、このリポジトリが検索されます。
Java キーストア – Solaris リリースでデフォルトでインストールされる証明書のリポジトリ。Java キーストアは通常、/usr/j2se/jre/lib/security ディレクトリに格納されます。
パッケージキーストア – 署名付きパッケージおよびパッチをシステムに追加する際にインポートする証明書用のリポジトリ。
パッケージキーストアは、デフォルトで /var/sadm/security ディレクトリに格納されます。
別のエンティティーに属する公開鍵を備えた証明書。「信頼される証明書」という呼び名は、証明書に含まれている公開鍵が、その証明書のサブジェクトまたは所有者によって示された本人のものであることを、キーストアの所有者が信頼することに由来しています。この信頼を表明するために、証明書の発行者はその証明書に署名します。
信頼される証明書は、署名を検証する際やセキュリティー保護されたサーバー (SSL サーバー) への接続を確立する際に使用されます。
暗号鍵に関する機密情報を保持します。この情報は、不正なアクセスを防ぐために、セキュリティーが施された形式で格納されます。ユーザー鍵は、ユーザーの非公開鍵と対応する公開鍵証明書から構成されます。
pkgadd コマンドまたは patchadd コマンドを使って署名付きのパッケージまたはパッチをシステムに追加する手順は、基本的に次の 3 つから構成されます。
pkgadm コマンドを使ってシステムのパッケージキーストアに証明書を追加します。
(省略可能) pkgadm コマンドを使って証明書を一覧表示します。
pkgadd コマンドを使ってパッケージを追加するか、patchadd コマンドを使ってパッチを適用します。
patchadd コマンドを使って署名付きパッチをシステムに適用する詳細な手順については、「patchadd コマンドによるパッチの管理 (作業マップ)」を参照してください。
次の表に、Oracle Solaris がシステムにインストールされたあと、システムに対してソフトウェアパッケージを追加および削除するためのツールを示します。
表 20–1 ソフトウェアパッケージを管理するためのツールまたはコマンド
ツールまたはコマンド |
説明 |
マニュアルページ |
---|---|---|
installer |
Oracle Solaris インストール GUI などのインストーラを起動して、Oracle Solaris インストールメディアからソフトウェアを追加します。インストーラがローカル、リモートのいずれかで利用可能になっている必要があります。 | |
prodreg (GUI) |
インストーラを起動して、ソフトウェア製品情報を追加、削除、または表示します。Oracle Solaris インストール GUI または pkgadd コマンドを使ってインストールされたソフトウェア製品に関する情報を削除または表示する場合は、Oracle Solaris Product Registry を使用します。 | |
Oracle Solaris Product Registry prodreg ビューア (CLI) |
prodreg コマンドでは、Oracle Solaris インストール GUI または pkgadd コマンドを使ってインストールされたソフトウェア製品に関する情報を削除または表示できます。 | |
pkgadd
|
ソフトウェアパッケージをインストールします。 | |
pkgchk |
ソフトウェアパッケージのインストールを検査します。 | |
pkginfo |
ソフトウェアパッケージ情報を表示します。 | |
pkgparam
|
ソフトウェアパッケージのパラメータ値を表示します。 | |
pkgrm |
ソフトウェアパッケージを削除します。 | |
pkgtrans |
インストール可能なパッケージをある形式から別の形式に変換します。-g オプションを指定して pkgtrans コマンドを実行すると、署名が生成され、該当するデータストリーム内に格納されます。 |
これらのコマンドの詳細は、第 21 章Oracle Solaris システム管理ツールによるソフトウェアの管理 (手順)および第 22 章Oracle Solaris パッケージコマンドによるソフトウェアの管理 (手順)を参照してください。
表 20–1 に記載されているソフトウェア管理ツールはすべて、ソフトウェアを追加したり、インストール済みソフトウェアを削除したり、それらのソフトウェアに関する情報を照会したりするために使用されます。Solaris Product Registry の prodreg ビューアと Solaris インストール GUI はどちらも、Solaris Product Registry に格納されているインストールデータにアクセスします。pkgadd コマンドや pkgrm コマンドといったパッケージツールも、インストールデータにアクセスしたりインストールデータを変更したりします。
パッケージを追加する際、pkgadd コマンドは、ファイルを解凍して、インストール用メディアからローカルシステムのディスクにコピーします。パッケージを削除する際、pkgrm コマンドは、そのパッケージに関連するファイルがほかのパッケージと共有されている場合を除いて、それらをすべて削除します。
パッケージファイルはパッケージ形式で配布され、配布されたままの状態では使用できません。pkgadd コマンドは、ソフトウェアパッケージの制御ファイルを解釈してから、製品ファイルを解凍して、システムのローカルディスクにインストールします。
pkgadd と pkgrm の各コマンドは、標準の場所にそのログ出力を記録しませんが、インストールまたは削除されるパッケージを常時追跡しています。pkgadd と pkgrm の各コマンドは、インストールまたは削除されたパッケージに関する情報をソフトウェア製品用データベースに格納します。
このデータベースを更新することによって、pkgadd および pkgrm の各コマンドは、システムにインストールされたすべてのソフトウェア製品の記録を追跡します。
システム上でパッケージをインストールまたは削除する場合には、次の点に注意する必要があります。
パッケージの命名規則 – Sun パッケージは、SUNWaccr、SUNWadmap、SUNWcsu などのように、必ず接頭辞 SUNW で始まります。Sun 以外のパッケージは、通常、その会社を表す接頭辞で始まります。
インストール済みのソフトウェア – Solaris インストール GUI、Solaris Product Registry の prodreg ビューア (GUI または CLI)、pkginfo コマンドのいずれかを使えば、システム上にすでにインストールされているソフトウェアを特定できます。
サーバーとクライアントによるソフトウェアの共有の状態 – クライアントのソフトウェアは、一部がサーバーに、一部がクライアントに置かれる場合があります。このような場合、クライアントにソフトウェアを追加するには、サーバーとクライアントの両方にパッケージを追加する必要があります。
rm コマンドを使ってパッケージを削除しても問題ないと感じる場合があっても、そのようにはせず、表 20–1 に示されているツールのいずれかを使用してください。たとえば、rm コマンドを使用すると、バイナリ実行可能ファイルを削除することができます。しかしながら、そのような操作は、pkgrm コマンドを使ってそのバイナリ実行可能ファイルを含むソフトウェアパッケージを削除する操作と等価ではありません。rm コマンドを使用してパッケージのファイルを削除すると、ソフトウェア製品用データベースが破壊されます。1 つのファイルだけを削除する場合は、removef コマンドを使用することができます。このコマンドを使用した場合、該当ファイルがパッケージから削除されるように、ソフトウェア製品データベースが正しく更新されます。詳細は、removef(1M) のマニュアルページを参照してください。
複数のバージョンのパッケージをインストールしておきたい場合は、pkgadd コマンドを使ってインストール済みパッケージとは別のディレクトリに新しいバージョンをインストールしてください。たとえば、複数のバージョンの文書処理アプリケーションをインストールしておきたい場合などが考えられます。パッケージがインストールされているディレクトリは、ベースディレクトリと呼ばれます。ベースディレクトリは、管理ファイルと呼ばれる特殊ファイルに basedir キーワードを設定することによって操作できます。管理ファイルの使用方法やベースディレクトリの設定方法の詳細は、「パッケージ追加時のユーザーの対話操作を省略する (pkgadd)」と、admin(4) のマニュアルページを参照してください。
Solaris ソフトウェアをインストールするときにアップグレードオプションを使用すると、Solaris インストール用ソフトウェアは、ソフトウェア製品用データベースを調べて、すでにシステムにインストールされている製品があるかどうかを確認します。
ゾーンに対応していない Oracle Solaris リリースが稼働するシステム上では、-R オプションを指定できるコマンドを使って、非大域ゾーンがインストールされた大域ゾーンの代替ルートパスを指定しても、そのコマンドは正しく動作しません。
それらのコマンドは次のとおりです。
pkgadd
pkgrm
patchadd
patchrm
pkgadd(1M)、pkgrm(1M)、patchadd(1M)、および patchrm(1M) のマニュアルページを参照してください。
追加情報については、「patchadd -R を使って代替 root パスを作成する際の制限」を参照してください。
この節では、pkgadd コマンドを使用してパッケージを追加する際にユーザーの対話操作を省略する方法について説明します。
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 コマンドを使用して、ユーザーの対話操作なしにパッケージをインストールすることができます。