我正在尝试安装runtime / perl-522,但默认安装了runtime / perl-512导致错误。 我也无法卸载runtime / perl-512,因为导致了以下错误
pkg uninstall:由于以下依赖于它的软件包,无法删除'runtime/perl-512@5.12.5-0.175.3.0.0.30.0': communication/im/pidgin@2.10.11-0.175.3.0.0.26.0 desktop/compiz@0.8.4-0.175.3.0.0.26.0 desktop/xscreensaver@5.15-0.175.3.0.0.22.0 developer/base-developer-utilities@0.5.11-0.175.3.0.0.30.0 developer/gnome/gettext@2.30.0-0.175.3.0.0.10.0 gnome/zenity@2.30.0-0.175.2.0.0.27.0 install/distribution-constructor@0.5.11-0.175.3.0.0.30.0 library/audio/gstreamer@0.10.32-0.175.3.0.0.26.0 library/gnome/gnome-component@2.24.3-0.175.2.0.0.31.0 library/perl-5/sun-solaris-512@0.5.11-0.175.3.0.0.30.0 network/ipfilter@0.5.11-0.175.3.1.0.3.0 package/rpm@1.3-0.175.3.0.0.30.0 print/cups@1.4.5-0.175.3.0.0.30.0 print/cups/filter/foomatic-db-engine@0.20080903-0.175.3.0.0.30.0 print/filter/a2ps@4.14-0.175.3.0.0.30.0 print/filter/ghostscript@9.0-0.175.3.0.0.30.0 print/filter/gutenprint@5.2.7-0.175.3.0.0.30.0 print/psutils@1.17-0.175.3.0.0.30.0 service/network/ntp@4.2.8.2-0.175.3.0.0.30.0 service/network/smtp/sendmail@8.15.1-0.175.3.1.0.2.0 support/explorer@8.9.15.9.11 system/core-os@0.5.11-0.175.3.1.0.2.0 system/dtrace/dtrace-toolkit@0.99-0.175.3.0.0.30.0 system/management/ocm@12.1.0.0.0-0.175.3.0.0.24.0 system/management/snmp/net-snmp@5.4.1-0.175.3.0.0.30.0 system/network/ppp@0.5.11-0.175.3.0.0.30.0 text/groff@1.22.2-0.175.3.0.0.30.0 text/texinfo@4.13-0.175.3.0.0.30.0 web/browser/w3m@0.5.2-0.175.3.0.0.30.0 web/server/apache-22@2.2.31-0.175.3.1.0.3.0 x11/server/xvnc@1.1.0-0.175.3.0.0.30.1483
在安装runtime / perl-522期间,我面临以下错误:
pkg install:对系统的请求更改尝试安装多个操作 链接'usr / perl5 / pod'具有冲突的属性:
1 package delivers 'link mediator=perl mediator-priority=vendor mediator-version=5.22 path=usr/perl5/pod target=5.22/lib/pod':
pkg://solaris/runtime/perl-522@5.22.1,5.12-5.12.0.0.0.122.0:20170510T193143Z
1 package delivers 'link path=usr/perl5/pod target=5.12/lib/pod':
pkg://solaris/runtime/perl-512@5.12.5,5.11-0.175.3.0.0.30.0:20150821T171525Z
这些包可能未安装在一起。任何非冲突的集合都可以 是,或者必须先纠正包装才能安装。
对系统的请求更改尝试安装多个操作 对于具有冲突属性的链接'usr / perl5 / man':
1 package delivers 'link mediator=perl mediator-priority=vendor mediator-version=5.22 path=usr/perl5/man target=5.22/man':
pkg://solaris/runtime/perl-522@5.22.1,5.12-5.12.0.0.0.122.0:20170510T193143Z
1 package delivers 'link path=usr/perl5/man target=5.12/man':
pkg://solaris/runtime/perl-512@5.12.5,5.11-0.175.3.0.0.30.0:20150821T171525Z
这些包可能未安装在一起。任何非冲突的集合都可以 是,或者必须先纠正包装才能安装。
对系统的请求更改尝试安装多个操作 对于具有冲突属性的链接'usr / perl5 / bin':
1 package delivers 'link mediator=perl mediator-priority=vendor mediator-version=5.22 path=usr/perl5/bin target=5.22/bin':
pkg://solaris/runtime/perl-522@5.22.1,5.12-5.12.0.0.0.122.0:20170510T193143Z
1 package delivers 'link path=usr/perl5/bin target=5.12/bin':
pkg://solaris/runtime/perl-512@5.12.5,5.11-0.175.3.0.0.30.0:20150821T171525Z
这些包可能未安装在一起。任何非冲突的集合都可以 是,或者必须先纠正包装才能安装。
/////////////////////////////////////////////// /////////////////////////////
所以请建议我安装runtime / perl-522
需要做什么提前致谢..
答案 0 :(得分:2)
根本原因是perl-522包含三个中介链接,这些链接在perl-512中不存在。不知道为什么,但你有(或者不是,在这种情况下;-)。链接 存在于perl-512中,但它们不是中介的。您可以在上面的错误消息中看到丢失的调解器,也可以通过检查两个包:
jmason@m5a97:~$ pkg contents -Ho action.raw -t link -a mediator=perl runtime/perl-512
link mediator=perl mediator-priority=vendor mediator-version=5.12 path=usr/bin/perl pkg.linted.pkglint.dupaction010.2=true target=../perl5/5.12/bin/perl
jmason@m5a97:~$ pkg contents -r -Ho action.raw -t link -a mediator=perl runtime/perl-522
link mediator=perl mediator-priority=vendor mediator-version=5.22 path=usr/perl5/bin target=5.22/bin
link mediator=perl mediator-priority=vendor mediator-version=5.22 path=usr/perl5/man target=5.22/man
link mediator=perl mediator-priority=vendor mediator-version=5.22 path=usr/perl5/pod target=5.22/lib/pod
link mediator=perl mediator-priority=vendor mediator-version=5.22 path=usr/bin/perl target=../perl5/5.22/bin/perl
我怀疑在Ram的情况下,pkg install ... perl-512
安装了一个perl-512版本,其中包括调解器。不确定这个版本是否已从公共solaris repo中删除,但对我来说,此命令没有任何效果,并且perl-512仍然没有调解器。结果,随后的pkg install ... perl-522
继续失败。
如果有其他人遇到这个问题并且google将他或她引导到这个页面就像我一样,这就是我解决它的方法。
受到蒂姆福斯特excellent posts on republishing packages的启发,我使用了' pkgmogrify'更新perl-512以包含缺少的调解器。步骤是:
从solaris repo中提取perl-512的新副本:
pkgrecv -s http://pkg.oracle.com/solaris/release --raw -d perl-512-proto perl-512@5.12.5-0.175.3.0.0.30.0
创建一个mogrify文件,perl-512.mog:
< transform set name = pkg.fmri - >编辑值pkg:// [^ /] + / pkg://每晚/>
< transform link path = usr / perl5 / bin - > add mediator perl>
< transform link path = usr / perl5 / bin - >添加中介优先供应商>
< transform link path = usr / perl5 / bin - >添加mediator-version 5.12>
< transform link path = usr / perl5 / man - > add mediator perl>
< transform link path = usr / perl5 / man - >添加中介优先供应商>
< transform link path = usr / perl5 / man - >添加mediator-version 5.12>
< transform link path = usr / perl5 / pod - > add mediator perl>
< transform link path = usr / perl5 / pod - >添加中介优先供应商>
< transform link path = usr / perl5 / pod - >添加mediator-version 5.12>
第一个指令更改了' solaris'的发布商名称。到了晚上'这是我当地回购的名字。 (代替'夜间'适用于您的本地仓库的任何值。)其余指令将介体属性添加到三个链接。
创建更新的清单;我们称它为perl-512.mediated':
pkgmogrify perl-512.mog perl-512-proto/runtime%2Fperl-512/5.12.5%2C5.11-0.175.3.0.0.30.0%3A20150821T171525Z/manifest > perl-512.mediated
将生成的包发布到您的本地仓库:
pkgsend -s nightly publish -d perl-512-proto/runtime%2Fperl-512/5.12.5%2C5.11-0.175.3.0.0.30.0%3A20150821T171525Z perl-512.mediated
perl-512是公司注册的一部分。设置其版本锁定方面以允许您更新它:
pkg change-facet version-lock.runtime/perl-512=false
从您当地的仓库安装perl-512:
pkg install pkg://nightly/runtime/perl-512
您现在应该在perl-512中看到所有四个中介链接:
jmason@m5a97:~$ pkg contents -Ho action.raw -t link -a mediator=perl runtime/perl-512
link facet.doc.man=all mediator=perl mediator-priority=vendor mediator-version=5.12 path=usr/perl5/man target=5.12/man
link mediator=perl mediator-priority=vendor mediator-version=5.12 path=usr/perl5/bin target=5.12/bin
link mediator=perl mediator-priority=vendor mediator-version=5.12 path=usr/bin/perl pkg.linted.pkglint.dupaction010.2=true target=../perl5/5.12/bin/perl
link mediator=perl mediator-priority=vendor mediator-version=5.12 path=usr/perl5/pod target=5.12/lib/pod
此时,您可以正常方式安装perl-522而不会出现问题。
这种方法的缺点是您需要自己处理perl-512的任何最新更新,因为您现在正在本地仓库中跟踪该包。
答案 1 :(得分:1)
现在我有了解决这个问题的方法。 按照给定的命令来克服这个错误:
pkg install --accept --licenses perl-512
pkg install --accept --licenses perl-522
执行此目标路径后,将更改为安装包,不会出现任何错误。