Go to main content
Oracle® Solaris 11.3 ソフトウェアの追加と更新

印刷ビューの終了

更新: 2017 年 3 月
 
 

デフォルトのアプリケーション実装の指定

アプリケーションまたはツールの複数のバージョンが同じイメージから利用できる場合があります。ユーザーはフルパスを指定することによって、アプリケーションの各バージョンを利用できます。使いやすくするために、優先バージョンと呼ばれる 1 つのバージョンが、/usr/bin などの共通ディレクトリから利用できます。以下に示すように、すべてのバージョンが同じメディエーションに入っている場合、優先バージョンであるバージョンを簡単に設定し直すことができます。この管理上の選択は、パッケージの更新後も保持されます。

メディエーションとは、セット内のすべてのリンクでリンクパスが同じで、各リンクのターゲットが異なるリンクのセットです。たとえば、リンクパスが /usr/bin/myapp で、リンクのターゲットが /usr/myapp/myapp1/bin/myapp および /usr/myapp/myapp2/bin/myapp を含む場合があります。メディエーションの各リンクは、メディエーションの参加者と呼ばれます。/usr/bin/myapp が現在 myapp1 を呼び出す場合、/usr/bin/myappmyapp2 を呼び出すように選択を簡単に変更することができます。現在リンクのターゲットであるソフトウェアのバージョンは、優先バージョンです。

メディエーション内の参加者の識別

イメージ内のすべてのメディエーション対象リンクの優先バージョンを表示するには、pkg mediator コマンドを使用します。

次の出力で、MEDIATOR は、同じ優先リンクパスを共有するリンクのセットの名前です。VER. SRC. および IMPL. SRC. は、優先バージョンが、システムによって選択されたか、割り当て済みの優先度に応じて選択されたか (vendor または site)、管理者によって設定されたか (local) を表示します。VERSION は、選択されたメディエーション参加者のバージョンで、リンクが表すソフトウェアのバージョンに類似しているはずです。VERSION はパッケージ開発者によって設定されます。IMPLEMENTATION は、バージョンストリングに加えて、あるいはバージョンストリングの代わりにパッケージ開発者によって設定できるストリングです。

$ pkg mediator
MEDIATOR    VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
gcc-runtime system    4.7     system
java        system    1.7     system
php         system    5.2     system
python      vendor    2.6     vendor
ruby        system    1.9     system

-a オプションは、すべてのメディエーション参加者を表します。異なる優先バージョンを選択する場合、このオプションを使用して、選択内容を表示します。次の例は、java メディエーションのすべての参加者を示しています。system キーワードは、このメディエーションの優先バージョンがパッケージの優先設定で指定されておらず、管理者によって設定されなかったことを示します。パッケージシステムは、高い VERSION 値を持つバージョンを優先バージョンとして選択しました。

$ pkg mediator -a java
MEDIATOR    VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
java        system    1.7     system
java        system    1.6     system

次の出力では、2 つの異なるバージョンの Java Runtime Environment がこのイメージにインストールされ、バージョン 1.7.0_51 が現在選択されている優先バージョンであることを確認できます。

$ pkg list -s '*jre*'
NAME (PUBLISHER)        SUMMARY
runtime/java/jre-6      Java(TM) Platform Standard Edition Runtime Environment (1.6.0_71-b12)
runtime/java/jre-7      Java Platform Standard Edition Runtime Environment (1.7.0_51-b13)
$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) Server VM (build 24.51-b03, mixed mode)

jre-6 パッケージと jre-7 パッケージの両方に、パスが /usr/bin/java であるシンボリックリンクが定義されています。jre-6 パッケージでは、リンクのターゲットは jdk1.6.0 です。jre-7 パッケージでは、リンクのターゲットは jdk1.7.0 です。上記の pkg mediator コマンドおよび java -version コマンドによって、現在の優先バージョンはバージョン 1.7 で、/usr/bin/java リンクのターゲットであることが表示されています。

優先アプリケーションの変更

指定したメディエーションのデフォルトまたは優先のバージョンを設定し直すには、pkg set-mediator コマンドを使用します。

pkg mediator -a からの出力を使用して、-V 引数に対するバージョンか、-I 引数に対する実装を選択します。タイプミスをしたか、現在入手できないメディエータのバージョンまたは実装を指定した場合、指定されたメディエータを使用するリンクは削除されます。

バックアップ BE が作成されるかどうかを表示するには、set-mediator サブコマンドに -n オプションを使用します。バックアップ BE が作成されない場合、set-mediator サブコマンドに --require-backup-be オプションを指定することができます。メディエータの変更が現在の BE で行われます。メディエータの変更後に現在の BE に問題がないことが確認できたら、beadm destroy を使用してバックアップ BE を破棄できます。

前回の出力では、現在選択されている java メディエーションの優先バージョンがバージョン 1.7 であると表示されました。次のコマンドは、バージョン 1.6 を優先バージョンとして設定することを示し、つまり /usr/bin/java を呼び出すと JRE バージョン 1.6 が呼び出されることを意味します。ユーザーが JRE version 1.7 のフルパスを指定すれば、このバージョンも引き続きシステムで使用可能です。2 つの pkg mediator コマンドの出力を比較してください。メディエーションの優先バージョンを変更すると、VER. SRC.local に変更され、選択が管理者によって指定されたことを示しています。この選択は、リブートおよびパッケージ更新後も持続します。

$ pkg mediator java
MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
java     system    1.7     system
$ pkg mediator -a java
MEDIATOR    VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
java        system    1.7     system
java        system    1.6     system
$ pkg set-mediator -V 1.6 java
            Packages to update:  3
           Mediators to change:  1
       Create boot environment: No
Create backup boot environment: No

PHASE                                          ITEMS
Removing old actions                             2/2
Updating modified actions                        3/3
Updating image state                            Done
Creating fast lookup database                   Done
Reading search index                            Done
Updating search index                            3/3
$ pkg mediator java
MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
java     local     1.6     system

この管理上の選択は、選択された実装がインストールされていなくても、パッケージの更新後も保持されます。選択された実装がインストールされていない場合、メディエーションされたリンクのターゲットは存在しません。優先される実装をリセットするには、次のいずれかの方法を使用します。

  • pkg set-mediator コマンドをふたたび使用して、pkg mediator -a によって表示された更新済みリストから別の実装を選択します。

  • pkg unset-mediator コマンドを使用して、システムが新しい実装を選択できるようにします。

    $ pkg unset-mediator java