パッケージの管理
Solaris 11 x64 VPS/クラウド パッケージの管理
Solaris 11では、ソフトウェアはIPSパッケージで配布されます。
IPS(Image Packaging System)は、ソフトウェアを管理するためのフレームワークであり、pkgコマンドを利用してソフトウェアパッケージのインストールや削除・更新などを行うことができます。
IPSパッケージは、障害リソース識別子(Fault Management Resource Identifer: FMRI)に基づき、「pkg:」というURIスキームを使って名づけられます。
FMRIの例
2013年3月1日現在、Apache 2.2の最新バージョンのFMRIは以下です。
pkg://solaris/web/server/apache-22@2.2.23,5.11-0.175.1.3.0.1.0:20121208T032817Z
FMRIは以下の形式で構成されています。
scheme://publisher/package_name@version:dateTtimeZ
scheme | URIスキームです。IPSパッケージの場合「pkg:」です。 |
---|---|
publisher | ISPパッケージの発行元です。例の場合「solaris」が発行元です。 |
package_name | ISPパッケージ名です。例の場合「web/server/apache-22」がIPSパッケージ名です。 |
version:dateTtimeZ | IPSパッケージの発行日時を含んだバージョン番号です。 |
このページでは、package_nameのFMRIでご案内しています。
パッケージのリストを表示する
パッケージのリストを表示するときは、以下のコマンドで行います。
# pkg list [ pkg_fmri_pattern ]
[ FMRI ]には、表示するパッケージのFMRIを指定します。[ FMRI ]は複数指定することができます。
[ FMRI ]を省略した場合、インストール済みパッケージの一覧が表示されます。
表示内容について
「pkg list」を実行した際の例です。一部のみ抜粋しています。
NAME (PUBLISHER) VERSION IFO web/server/apache-22 2.2.23-0.175.1.3.0.1.0 i--&br;
IFO列には、パッケージのステータスを表すフラグが表示されます。
- I列
- 「i」が表示されている場合は、パッケージがインストールされていることを示します。
- F列
- 「f」が表示されている場合は、パッケージが凍結されていることを示します。
- O列
- 「o」が表示されている場合は、パッケージが廃止されていることを示します。
- 「r」が表示されている場合は、パッケージ名が変更されていることを示します。
主なオプション
- -a [ FMRI ]
- インストール済みパッケージと、未インストールで入手可能なパッケージの最新バージョンを表示します。[ FMRI ]は省略可能です。
- -f [ FMRI ]
- -aと同時に指定した場合、インストール状態に関係なく、すべてのバージョンを表示します。[ FMRI ]は省略可能です。
- -v
- パブリッシャーと完全バージョンを含む、フルパッケージFMRIを表示します。
利用例
Apache 2.2の、インストール可能な最新バージョンをフルパッケージFMRIで表示します。
# pkg list -avf web/server/apache-22
パッケージの情報を表示する
パッケージの情報を表示するときは、以下のコマンドで行います。
# pkg info [ FMRI ]
[ FMRI ]には、表示するパッケージのFMRIを指定します。[ FMRI ]は複数指定することができます。
[ FMRI ]を省略した場合、すべてのインストール済みパッケージの情報が表示されます。
表示内容について
「pkg info web/server/apache-22」を実行した際の例です。一部のみ抜粋しています。
※Apache 2.2はインストール済みとします。
Name: web/server/apache-22 Summary: Apache Web Server V2.2 Description: The Apache HTTP Server Version 2.2 Category: Web Services/Application and Web Servers State: Installed Publisher: solaris Version: 2.2.23 Build Release: 5.11 Branch: 0.175.1.3.0.1.0 Packaging Date: 2012年12月08日 03時28分17秒 Size: 9.03 MB FMRI: pkg://solaris/web/server/apache-22@2.2.23,5.11-0.175.1.3.0.1.0:20121208T032817Z
主なオプション
- -r [ FMRI ]
- 入手可能な未インストールを含む最新バージョンのパッケージの情報を表示します。
利用例
Apache 2.2の最新バージョンの情報を表示します。
# pkg info -r web/server/apache-22
パッケージをインストールする
ソフトウェアパッケージをインストールするときは、以下のコマンドで行います。
# pkg install [ FMRI ]
[ FMRI ]には、インストールするパッケージのFMRIを指定します。[ FMRI ]は複数指定することができます。
なお、インストールするパッケージが依存しているパッケージは同時にインストールされます。
主なオプション
- -n
- 実際のインストールは行わず、dry runを行います。
- -v
- 実行中の詳細な進捗状況を表示します。
- --accept
- ライセンス条項に同意が必要なパッケージの場合、同意することを示します。ライセンス条項に同意が必要なパッケージ場合、このオプションを指定しないとインストールは失敗します。
- --require-new-be
- 新しくBEを作成し、そのBEに対してパッケージをインストールします。作成されたBEはアクティブになります。
- BE名はシステムにより自動で決定します。BE名を指定する場合は、--be-nameオプションを利用します。
- インストールしたパッケージを反映するためには、システムの再起動が必要です。
- --be-name [ BEname ]
- --require-new-beと同様にBEを作成し、BE名を[ BEname ]にします。このオプションを指定すると、--require-new-beが暗黙的に指定されます。
- --require-backup-be
- インストール前の環境でバックアップ用BEを作成し、現在のBEに対してパッケージをインストールします。作成されたBEはアクティブにはなりません。
- インストールにより不具合が生じた場合は、バックアップ用BEをアクティブにし、システムを再起動することでインストール前の環境に戻ることができます。
- --backup-be-name [ BEname ]
- require-backup-beと同様にバックアップ用BE作成し、BE名を[ BEname ]にします。このオプションを指定すると、--require-backup-beが暗黙的に指定されます。
BEについて
パッケージによっては、BE作成のオプションを指定しなくてもBEやバックアップBEが作成される場合があります。
利用例
Apache 2.2を以下のオプションを指定してインストールします。
- 詳細な進捗状況を表示する。
- BEを作成・アクティブにし、名前を「solaris-20130301-apache」にする。Apache 2.2は作成したBEに対してインストールする。
# pkg install -v --be-name solaris-20130301-apache web/server/apache-22
- Apache 2.2のインストールを反映するためには、システムの再起動が必要です。
パッケージをアンインストールする
インストールしたパッケージをアンインストールするときは、以下のコマンドで行います。
# pkg uninstall [ FMRI ]
[ FMRI ]には、アンインストールするパッケージのFMRIを指定します。[ FMRI ]は複数指定することができます。
なお、指定したパッケージに依存するパッケージがインストールされている場合、アンインストールは失敗します。
主なオプション
- -n
- 実際のアンインストールは行わず、dry runを行います。
- -v
- 実行中の詳細な進捗状況を表示します。
- --require-new-be
- 新しくBEを作成し、そのBEに対してパッケージをアンインストールします。作成されたBEはアクティブになります。
- BE名はシステムにより自動で決定します。BE名を指定する場合は、--be-nameオプションを利用します。
- アンインストールしたパッケージを反映するためには、システムの再起動が必要です。
- --be-name [ BEname ]
- --require-new-beと同様にBEを作成し、BE名を[ BEname ]にします。このオプションを指定すると、--require-new-beが暗黙的に指定されます。
- --require-backup-be
- アンインストール前の環境でバックアップ用BEを作成し、現在のBEに対してパッケージをアンインストールします。作成されたBEはアクティブにはなりません。
- アンインストールにより不具合が生じた場合は、バックアップ用BEをアクティブにし、システムを再起動することでアンインストール前の環境に戻ることができます。
- --backup-be-name [ BEname ]
- require-backup-beと同様にバックアップ用BE作成し、BE名を[ BEname ]にします。このオプションを指定すると、--require-backup-beが暗黙的に指定されます。
利用例
Apache 2.2を詳細な進捗状況を表示しながらアンインストールします。
# pkg uninstall -v web/server/apache-22
パッケージの内容を表示する
パッケージに含まれるインストール可能なオブジェクト(アクション)とその属性の値を表示します。
# pkg contents [ FMRI ]
[ FMRI ]には、内容を表示するパッケージのFMRIを指定します。[ FMRI ]は複数指定することができます。
[ FMRI ]を省略した場合、すべてのインストール済みパッケージについて表示します。
また、標準ではpath属性の値のみがアルファベット順にソートされて表示されます。
このコマンドは、ファイルのインストールパスなどを調べる際に有効です。
主なオプション
- -a [ attribute=pattern ]
- 表示する属性の値を指定します。このオプションは複数指定できます。
- -m
- すべてのアクションのすべての属性を表示します。
- -o [ attribute ]
- 表示する属性を指定します。[ attribute ]は、カンマ区切りにより複数指定できます。
- 最初に指定した属性の値をアルファベット順でソートして表示します。
- -r
- インストール可能な最新バージョンのパッケージの情報を表示します。このオプションを指定するときは、[ FMRI ]を省略することはできません。
- -s
- 指定された属性によりソートして表示します。
- -t [ action_type ]
- 表示するアクションのみを表示します。[ action_type ]は、カンマ区切りにより複数指定できます。
利用例
Apache 2.2のpath属性の値を表示します。
# pkg contents web/server/apache-22
Apache 2.2の設定ファイル「httpd.conf」のインストールパスを確認します。
# pkg contents -t file -a path='*/httpd.conf' web/server/apache-22
Apache 2.2が依存しているパッケージのFMRIと、依存タイプを表示します。
# pkg contents -t depend -o fmri,type web/server/apache-22
パッケージを検索する
指定したクエリに該当するパッケージを検索するときは、以下のコマンドで行います。
# pkg search [ Query ]
[ Query ]には、検索したいクエリ(ファイル名など)を指定します。
主なオプション
- -l
- インストール済みのパッケージから検索します。
- -r
- リモートのパブリッシャから検索します。
利用例
ファイル「httpd.conf」が含まれているパッケージを検索します。
# pkg search -r 'httpd.conf'
Apache 2.2に依存するインストール済みパッケージを検索します。
# pkg search -l 'depend::web/server/apache-22'
アプリケーションの実装を選択する
同一のアプリケーションで複数のバージョンをインストールしている場合、アプリケーションによってはシステムが実装するバージョンを選択することができます。
ここでは、PHPを例にご案内します。
現在選択されているバージョンを表示する
PHP 5.3が選択されていることを確認できます。
# pkg mediator php MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION php local 5.3 system
選択可能なバージョンを表示する
PHP 5.3に加え、5.2も選択可能であることが確認できます。
# pkg mediator -a php MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION php system 5.3 system php system 5.2 system
システムが実装するバージョンを変更する
ここでは、PHP 5.2を選択しています。
# pkg set-mediator -V 5.2 php