跳过导航链接 | |
退出打印视图 | |
添加和更新 Oracle Solaris 11.1 软件包 Oracle Solaris 11.1 Information Library (简体中文) |
您可能需要在同一映像中提供某个应用程序或工具的多个版本。如果应用程序的不同版本都作为相同中介的一部分来提供,则您可以方便地重置缺省或首选版本。中介是指向应用程序不同实现的一组链接,每个链接具有相同的中介名称,相同的链接路径,但具有不同的目标链接路径。
可使用 pkg mediator 命令显示映像中的所有中介,或显示指定中介的当前选定版本。
/usr/bin/pkg mediator [-aH] [-F format] [mediator ...]
可使用 pkg set-mediator 命令重置指定中介的版本(缺省或首选版本)。
usr/bin/pkg set-mediator [-nv] [-I implementation] [-V version] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] mediator ...
在以下示例中,安装了两种不同版本的 Java 运行时环境。
$ pkg list 'runtime/java*' NAME (PUBLISHER) VERSION IFO runtime/java 1.6.0.33-0.175.1.0.0.18.1 i-- runtime/java/jre-6 1.6.0.33-0.175.1.0.0.18.1 i-- runtime/java/jre-7 1.7.0.5-0.175.1.0.0.18.0 i--
以下命令显示定义了一个 java 中介,且缺省版本为版本 1.7。
$ pkg mediator MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION java system 1.7 system php system 5.2 system python vendor 2.6 vendor
以下命令显示了可以进行设置的所有 java 中介。jre-6 和 jre-7 均定义了一个来自 /usr/bin/java 的符号链接。在 jre-6 软件包中,/usr/bin/java 链接的目标为 jdk1.6。在 jre-7 软件包中,/usr/bin/java 链接的目标为 jdk1.7。前一命令显示版本 1.7 当前为 /usr/bin/java 链接的目标。此中介未指定首选实现,软件包系统选择将较高版本的实现作为首选实现。
$ pkg mediator -a java MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION java system 1.7 system java system 1.6 system
以下命令显示将版本 1.6 设置为首选实现。这意味着调用 /usr/bin/java 将调用 JRE 版本 1.6。用户指定了 JRE 版本 1.7 的完整路径时,仍可在系统上使用该版本。比较两个 pkg mediator 命令的输出。
$ pkg mediator java MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION java system 1.7 system $ pfexec 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