Solaris のシステム管理 (基本編)

第 20 章 ソフトウェアの管理 (概要)

ソフトウェアの管理には、スタンドアロンシステム、サーバー、およびそのクライアントへのソフトウェアの追加や削除が含まれます。この章では、ソフトウェアのインストールや管理に使用できる各種ツールについて説明します。

この章では、新しいシステムでの 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 リリースの説明については、『Oracle Solaris 10 9/10 の新機能』を参照してください。

Oracle Solaris 自動登録

Oracle Solaris 10 9/10: 自動登録は、目録作成およびサポートの目的で、お使いのシステムの構成データを収集して Oracle Product Registration System に自動的に登録を行う、組み込みメカニズムです。特権システム管理者は regadm コマンドを使用して、自動登録機能を管理したり、インストールやアップグレードプロセスとは無関係にシステムを明示的に登録したりすることができます。

詳細は、第 17 章Oracle Solaris 自動登録コマンド regadm の操作 (手順)を参照してください。

Oracle Solaris ゾーンをサポートするためのパッケージおよびパッチツールの拡張

Oracle Solaris 10 10/09: このリリースから、複数の非大域ゾーンがインストールされているシステムをサポートするために、パッケージおよびパッチツールに対して次の拡張が行われています。

ゾーン環境でのパッケージおよびパッチツールの使用をサポートするこれらの機能強化の詳細については、次のドキュメントを参照してください。

遅延起動パッチ

パッチツールが大規模なパッチを処理できるように変更されました。パッチ 119254-42 および 119255-42 以降、パッチインストールコマンド patchadd および patchrm が変更され、新しい機能を提供する特定のパッチの処理方法が変わりました。この変更は、これらのパッチをどの Oracle Solaris OS にインストールする場合にも影響を与えます。これらの「遅延起動」パッチによって、機能パッチで提供される大規模な変更の処理能力が向上します。

詳細は、http://www.sun.com/bigadmin/sundocs/articles/patch-wn.jsp を参照してください。

Oracle Solaris OS に組み込まれた Common Agent Container

Common Agent Container は、Java 管理アプリケーションのコンテナを実装する、スタンドアロンの Java プログラムです。このプログラムが提供する管理インフラストラクチャーは、Java Management Extensions (JMX) および Java Dynamic Management Kit (Java DMK) ベースの管理機能向けに設計されています。このソフトウェアは SUNWcacaort パッケージによってインストールされ、/usr/lib/cacao ディレクトリに置かれます。

通常、このコンテナは表示されません。

ただし、次の 2 つの場合は、コンテナデーモンとの対話が必要になることがあります。

これらの問題のトラブルシューティングの方法については、『Solaris のシステム管理 (上級編)』「Oracle Solaris OS での共通エージェントコンテナの問題解決」を参照してください。

patchadd -M コマンドが複数のパッチを処理する方法の改善

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 のインストール 

『Oracle Solaris 10 9/10 インストールガイド (基本編)』

インストール後のソフトウェアパッケージの追加または削除 

第 21 章Oracle Solaris システム管理ツールによるソフトウェアの管理 (手順)および第 22 章Oracle Solaris パッケージコマンドによるソフトウェアの管理 (手順)

インストール後の Solaris パッチの追加または削除 

「Oracle Solaris オペレーティングシステムでのパッチ管理」

ソフトウェアパッケージの問題のトラブルシューティング 

『Solaris のシステム管理 (上級編)』の第 21 章「ソフトウェアパッケージで発生する問題の解決 (手順)」

ソフトウェアパッケージの概要

ソフトウェア管理には、ソフトウェア製品のインストールと削除が含まれます。Sun および Sun 以外の ISV は、ソフトウェアを 1 つ以上の「パッケージ」の集まりとして提供します。

「パッケージング」という用語は一般に、ソフトウェア製品が使用されるシステム にその製品を配布してインストールする方法を指します。パッケージは、定義済みフォーマットによるファイルとディレクトリの集まりです。このフォーマットは、アプリケーションバイナリインタフェース (ABI) に準拠します。ABI は、System V インタフェース定義を補足するものです。Solaris OS には、このフォーマットを解釈し、パッケージをインストールまたは削除したり、パッケージインストールを検査したりする方法を提供する 1 組のユーティリティーがあります。

「パッチ」とは、Solaris OS 内またはその他のサポート対象ソフトウェア内の既知または潜在的な問題に対する修正をまとめたものです。また、パッチは、特定のソフトウェアリリースに対する新機能や機能拡張の提供も行います。パッチは、既存のファイルやディレクトリを置換または更新するファイルやディレクトリから構成されます。ほとんどの Solaris パッチは、一連の疎パッケージとして提供されます。

「疎パッケージ」には、そのパッケージが Solaris ディストリビューションの一部として初めて提供されたあとで変更されたオブジェクトのみが含まれます。疎パッケージには、ソフトウェア更新を提供するために完全なパッケージとして再配布した場合よりも小さなパッチが収められています。また、疎パッケージとして提供すると、顧客の環境に対する変更も最小限に抑えられます。パッチの詳細については、「Oracle Solaris オペレーティングシステムでのパッチ管理」を参照してください。

署名付きのパッケージ、パッチ、およびソフトウェア更新

パッケージには、デジタル署名を含めることができます。有効なデジタル署名付きのパッケージは、署名が適用された以降はパッケージの変更が行われていないことを保証します。署名付きパッケージを使用すると、パッケージをシステムに追加する前にデジタル署名を検証できるため、パッケージを安全にダウンロードまたは追加できます。

同じことが、署名付きパッチにも言えます。有効なデジタル署名付きのパッチは、署名が適用された以降はパッチの変更が行われていないことを保証します。署名付きパッチを使用すると、パッチをシステムに適用する前にデジタル署名を検証できるため、パッチを安全にダウンロードまたは適用できます。

署名付きパッチをシステムに「適用」する方法の詳細については、patchadd コマンドによるパッチの管理 (作業マップ)」を参照してください。

署名付きパッケージの作成方法については、『アプリケーションパッケージ開発者ガイド』を参照してください。

署名付きパッケージは、デジタル署名が含まれる点以外は、署名なしパッケージとまったく同一です。このパッケージのインストール、照会、または削除は、既存の Solaris パッケージツールを使って行うことができます。また、署名付きパッケージと署名なしパッケージは、バイナリレベルで互換性があります。

pkgaddpatchadd を使ってデジタル署名付きのパッケージまたはパッチをシステムに追加するには、信頼される証明書を使ってパッケージキーストアを設定しておく必要があります。これらの証明書は、パッケージやパッチ上のデジタル署名の有効性を確認する際に使用されます。

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 つから構成されます。

  1. pkgadm コマンドを使ってシステムのパッケージキーストアに証明書を追加します。

  2. (省略可能) pkgadm コマンドを使って証明書を一覧表示します。

  3. pkgadd コマンドを使ってパッケージを追加するか、patchadd コマンドを使ってパッチを適用します。

patchadd コマンドを使って署名付きパッチをシステムに適用する詳細な手順については、patchadd コマンドによるパッチの管理 (作業マップ)」を参照してください。

ソフトウェアパッケージを管理するためのツール

次の表に、Oracle Solaris がシステムにインストールされたあと、システムに対してソフトウェアパッケージを追加および削除するためのツールを示します。

表 20–1 ソフトウェアパッケージを管理するためのツールまたはコマンド

ツールまたはコマンド  

説明 

マニュアルページ 

installer

Oracle Solaris インストール GUI などのインストーラを起動して、Oracle Solaris インストールメディアからソフトウェアを追加します。インストーラがローカル、リモートのいずれかで利用可能になっている必要があります。 

installer(1M)

prodreg (GUI)

インストーラを起動して、ソフトウェア製品情報を追加、削除、または表示します。Oracle Solaris インストール GUI または pkgadd コマンドを使ってインストールされたソフトウェア製品に関する情報を削除または表示する場合は、Oracle Solaris Product Registry を使用します。

prodreg(1M)

Oracle Solaris Product Registry prodreg ビューア (CLI)

prodreg コマンドでは、Oracle Solaris インストール GUI または pkgadd コマンドを使ってインストールされたソフトウェア製品に関する情報を削除または表示できます。

prodreg(1M)

pkgadd

 

ソフトウェアパッケージをインストールします。 

pkgadd(1M)

pkgchk

ソフトウェアパッケージのインストールを検査します。 

pkgchk(1M)

pkginfo

ソフトウェアパッケージ情報を表示します。 

pkginfo(1)

pkgparam

 

ソフトウェアパッケージのパラメータ値を表示します。 

pkgparam(1)

pkgrm

ソフトウェアパッケージを削除します。 

pkgrm(1M)

pkgtrans

インストール可能なパッケージをある形式から別の形式に変換します。-g オプションを指定して pkgtrans コマンドを実行すると、署名が生成され、該当するデータストリーム内に格納されます。

pkgtrans(1)

これらのコマンドの詳細は、第 21 章Oracle Solaris システム管理ツールによるソフトウェアの管理 (手順)および第 22 章Oracle Solaris パッケージコマンドによるソフトウェアの管理 (手順)を参照してください。

ソフトウェアパッケージの追加または削除 (pkgadd)

表 20–1 に記載されているソフトウェア管理ツールはすべて、ソフトウェアを追加したり、インストール済みソフトウェアを削除したり、それらのソフトウェアに関する情報を照会したりするために使用されます。Solaris Product Registry の prodreg ビューアと Solaris インストール GUI はどちらも、Solaris Product Registry に格納されているインストールデータにアクセスします。pkgadd コマンドや pkgrm コマンドといったパッケージツールも、インストールデータにアクセスしたりインストールデータを変更したりします。

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

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

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

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

ソフトウェアパッケージの追加にあたっての重要な注意点 (pkgadd)

システム上でパッケージをインストールまたは削除する場合には、次の点に注意する必要があります。

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

rm コマンドを使ってパッケージを削除しても問題ないと感じる場合があっても、そのようにはせず、表 20–1 に示されているツールのいずれかを使用してください。たとえば、rm コマンドを使用すると、バイナリ実行可能ファイルを削除することができます。しかしながら、そのような操作は、pkgrm コマンドを使ってそのバイナリ実行可能ファイルを含むソフトウェアパッケージを削除する操作と等価ではありません。rm コマンドを使用してパッケージのファイルを削除すると、ソフトウェア製品用データベースが破壊されます。1 つのファイルだけを削除する場合は、removef コマンドを使用することができます。このコマンドを使用した場合、該当ファイルがパッケージから削除されるように、ソフトウェア製品データベースが正しく更新されます。詳細は、removef(1M) のマニュアルページを参照してください。

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


注 –

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


ゾーンに対応していない Solaris リリースでソフトウェアパッケージおよびパッチを追加および削除する際の制限

ゾーンに対応していない Oracle Solaris リリースが稼働するシステム上では、-R オプションを指定できるコマンドを使って、非大域ゾーンがインストールされた大域ゾーンの代替ルートパスを指定しても、そのコマンドは正しく動作しません。

それらのコマンドは次のとおりです。

pkgadd(1M)pkgrm(1M)patchadd(1M)、および patchrm(1M) のマニュアルページを参照してください。

追加情報については、patchadd -R を使って代替 root パスを作成する際の制限」を参照してください。

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

この節では、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) のマニュアルページを参照してください。

応答ファイルの使用 (pkgadd)

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

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

request スクリプトが尋ねる質問への応答を格納した後は、pkgadd -r コマンドを使用して、ユーザーの対話操作なしにパッケージをインストールすることができます。