您可能希望为给定的应用程序提供具有以下特征的多个实现:
所有实现在映像中都可用。
为了便于搜索,其中的一项实现位于一个公用目录中,如 /usr/bin。
管理员可以轻松更改公用目录中的实现,无需添加或删除任何软件包。
Oracle Solaris 11 为几种不同的应用程序提供多种实现,如 Java 和 Python。要指定公用目录中可用的实现(例如 /usr/bin)并使管理员可以轻松更改所选的实现,需使用中介链接。
中介链接在单个映像中管理应用程序的多个实现。中介链接是设置有 mediator 属性的符号链接(请参见中介链接的属性)。使用具有 mediator 属性的 link 操作打包的软件是中介的参与者。公用目录(如 /usr/bin)中可用的中介参与者称为首选版本。中介中的首选版本可通过以下方式确定:
您可以为中介的每个参与者指定一个版本 (mediator-version) 或版本化实现 (mediator-implementation)。您可以指定冲突时的覆盖优先级 (mediator-priority)。
如果中介的参与者具有指定的优先级,则优先级值最高的参与者将被选为首选实现。
如果中介的参与者不具有指定的优先级,但有一个参与者具有指定的版本,则版本值最高的参与者将被选为首选实现。
如果中介的参与者不具有指定的优先级或版本,将随机选择一个参与者作为首选实现。如果所选参与者的 mediator-implementation 包含版本字符串,则该 mediator-implementation 版本字符串值最高的参与者将被选为首选实现。
管理员可以使用 pkg set-mediator 命令设置首选实现。请参见在 Oracle Solaris 11.2 中添加和更新软件 中的指定缺省的应用程序实现。
如果只有一个特定中介的实例安装在映像中,则该实例将自动选作该中介的首选实现。如果管理员在安装软件包后设置首选实现,则在同一中介中安装其他参与者不会更改管理员设置的首选实现。