尝试在 Solaris 11.3 VM 上安装 golang

尝试在 Solaris 11.3 VM 上安装 golang

我尝试在新创建的 Solaris 11.3 VM(从 Oracle 下载)上安装 Go(golang),但出现了以下错误:

root@solaris:/export/home/jdeppe# pkg install golang-15
Creating Plan (Running solver): /
pkg install: No matching version of developer/golang-15 can be installed:
  Reject:  pkg://solaris/developer/[email protected]
  Reason:  No version matching 'require' dependency runtime/[email protected],5.11-5.12.0.0.0.90.0 can be installed
    ----------------------------------------
    Reject:  pkg://solaris/runtime/[email protected]
    Reason:  No version matching 'optional' dependency runtime/[email protected],5.11-5.12.0.0.0.69.0 can be installed
      ----------------------------------------
      Reject:  pkg://solaris/runtime/[email protected]
               pkg://solaris/runtime/[email protected]
      Reason:  This version is excluded by installed incorporation consolidation/userland/[email protected]
      ----------------------------------------
    Reject:  pkg://solaris/runtime/[email protected]
    Reason:  No version matching 'optional' dependency runtime/[email protected],5.11-5.12.0.0.0.69.0 can be installed
    ----------------------------------------

经过一番谷歌搜索后,我终于运行了:pkg change-facet facet.version-lock.runtime/perl-512=false,之后我能够安装 golang-15。太棒了!

有人能解释一下我刚才做了什么吗 :)。我知道这个问题听起来很奇怪,但我在写的时候设法解决了它(我还没弄清楚这些change-facet东西)。我仍然想了解这个动作的含义。

我能(应该)用不同的方式来解决这个问题吗?

答案1

该软件包的当前版本developer/golang-15依赖于 Perl 5.22:

$ pkg contents -r -o fmri,type -t depend developer/golang-15
FMRI                                         TYPE
pkg:/runtime/[email protected] require
pkg:/system/[email protected]   require
release/evaluation                           require

在您的案例中,它显然仍然依赖于 Perl 5.20。无论如何,问题在于默认的 Solaris 11.3 安装附带了 Perl 5.12。由于其他软件包也依赖于 Perl 运行时,因此系统会尝试锁定此版本以防止软件包损坏。这是通过 Solaris 软件包管理功能(称为成立公司。合并包用于防止意外升级或降级操作系统包。但是,对于某些包,它将提供一个漏洞,以便管理员可以安装不同的版本。通过设置,facet.version-lock.runtime/perl-512=false您实际上告诉 Solaris 释放对 Perl 5.12 的锁定,并允许升级到更高版本。在安装 Golang 之后,您的默认 Perl 版本将从 5.12 更改为 5.22:

$ perl --version

This is perl 5, version 22, subversion 1 (v5.22.1) built for i86pc-solaris-thread-multi-64

Copyright 1987-2015, Larry Wall

以下是 Oracle 文档的链接,其中更详细地解释了此功能:http://docs.oracle.com/cd/E26502_01/html/E28984/gmias.html

相关内容