Identifying Participants in a Mediation
Use the pkg mediator command to display the preferred versions of all mediated links in the image.
In the following output, MEDIATOR is the name of the set of links that share the same preferred link path. VER. SRC. and IMPL. SRC. show whether the preferred version was selected by the system, was selected according to an assigned priority (vendor or site) or was set by an administrator (local). VERSION is the version of the selected mediation participant, which should be similar to the version of the software that the link represents. The VERSION is set by the package developer. IMPLEMENTATION is a string that can be set by the package developer in addition to or instead of the version string. Your list will be different, depending on what you have installed.
$ pkg mediator
MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
apache system 2.4 system
apr-1-config system 1.5 system
apu-1-config system 1.5 system
csh vendor vendor suncsh
gcc system 5 system
java system 1.8 system
openssl vendor vendor default
perl vendor 5.22 vendor
python local 2.7 vendor
ruby vendor 2.1 vendor
sendmail vendor vendor sendmail
which vendor vendor gnuThe -a option shows all mediation participants. Use this option to show your choices if you want to select a different preferred version. The following example shows all participants in the java mediation. The system keywords indicate that the preferred version in this mediation is not specified with a priority setting in the package and was not set by an administrator: The packaging system selected the version with the higher VERSION value as the preferred version.
$ pkg mediator -a java
MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
java system 1.8 system
java system 1.7 systemThe following output shows all packages that deliver the java mediation:
$ pkg search -lo pkg.name,mediator-version link:mediator:java
PKG.NAME MEDIATOR-VERSION
runtime/java/jre-7 1.7
runtime/java/jre-8 1.8The following output confirms that two different versions of the Java Runtime Environment are installed in this image and version 1.8.0_112 is the currently selected preferred version:
$ pkg list -s '*jre*' NAME (PUBLISHER) SUMMARY runtime/java/jre-7 Java Platform Standard Edition Runtime Environment (1.7.0_131-b12) runtime/java/jre-8 Java Platform Standard Edition Runtime Environment (1.8.0_121-b13) $ java -version java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
The following output shows the mediated links (PATH) and where they link (TARGET):
$ pkg contents -o mediator-version,path,target -t link -a mediator=java jre-8 jre-7 MEDIATOR-VERSION PATH TARGET 1.7 usr/java jdk/jdk1.7.0_131 1.8 usr/java jdk/jdk1.8.0_121 1.7 usr/jdk/jdk1.7.0_131 instances/jdk1.7.0 1.8 usr/jdk/jdk1.8.0_121 instances/jdk1.8.0 1.7 usr/jdk/latest jdk1.7.0_131 1.8 usr/jdk/latest jdk1.8.0_121 $ ls -l /usr/java lrwxrwxrwx 1 root root 16 Mar 23 16:11 /usr/java -> jdk/jdk1.8.0_121/
Both the jre-8 and jre-7 packages define a symbolic link whose path is /usr/bin/java. In the jre-7 package, the target of the link is jdk1.6.0. In the jre-8 package, the target of the link is jdk1.7.0. The pkg mediator and java -version commands above show that version 1.8 is currently the preferred version, the target of the /usr/bin/java link.