Jen*_*s D 1 solaris package-management
我试图在新创建的 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/golang-15@1.5-5.12.0.0.0.95.0
Reason: No version matching 'require' dependency runtime/perl-520@5.20.1,5.11-5.12.0.0.0.90.0 can be installed
----------------------------------------
Reject: pkg://solaris/runtime/perl-520@5.20.1-5.12.0.0.0.90.0
Reason: No version matching 'optional' dependency runtime/perl-512@5.12.5,5.11-5.12.0.0.0.69.0 can be installed
----------------------------------------
Reject: pkg://solaris/runtime/perl-512@5.12.5-5.12.0.0.0.90.0
pkg://solaris/runtime/perl-512@5.12.5-5.12.0.0.0.95.0
Reason: This version is excluded by installed incorporation consolidation/userland/userland-incorporation@0.5.11-0.175.3.1.0.3.0
----------------------------------------
Reject: pkg://solaris/runtime/perl-520@5.20.1-5.12.0.0.0.95.0
Reason: No version matching 'optional' dependency runtime/perl-512@5.12.5,5.11-5.12.0.0.0.69.0 can be installed
----------------------------------------
Run Code Online (Sandbox Code Playgroud)
经过一番谷歌搜索pkg change-facet facet.version-lock.runtime/perl-512=false后,我终于运行了:,之后我就可以安装 golang-15。甜的!!
有人可以解释一下我刚刚做了什么:)。我知道这个问题听起来很奇怪,但我在写的时候设法解决了它(我还没弄清楚这些change-facet东西)。我仍然想了解此操作的含义。
我可以(应该)以不同的方式解决这个问题吗?
小智 5
该developer/golang-15软件包的当前版本依赖于 Perl 5.22:
$ pkg contents -r -o fmri,type -t depend developer/golang-15
FMRI TYPE
pkg:/runtime/perl-522@5.22.1-5.12.0.0.0.95.0 require
pkg:/system/library@0.5.11-0.175.3.1.0.3.0 require
release/evaluation require
Run Code Online (Sandbox Code Playgroud)
在你的情况下,它显然仍然依赖于 Perl 5.20。无论哪种方式,问题在于默认的 Solaris 11.3 安装随 Perl 5.12 一起提供。由于其他包也依赖于 Perl 运行时,系统会尝试锁定此版本以防止损坏的包。这是通过名为Incorporations的 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
Run Code Online (Sandbox Code Playgroud)
以下是更详细解释此功能的 Oracle 文档的链接:http : //docs.oracle.com/cd/E26502_01/html/E28984/gmias.html
| 归档时间: |
|
| 查看次数: |
1385 次 |
| 最近记录: |