Reputation: 211
I am trying to install runtime/perl-522 but by default installed runtime/perl-512 causing error. I am also unable to uninstall runtime/perl-512 because causing following error
pkg uninstall: Unable to remove 'runtime/[email protected]' due to the following packages that depend on it: communication/im/[email protected] desktop/[email protected] desktop/[email protected] developer/[email protected] developer/gnome/[email protected] gnome/[email protected] install/[email protected] library/audio/[email protected] library/gnome/[email protected] library/perl-5/[email protected] network/[email protected] package/[email protected] print/[email protected] print/cups/filter/[email protected] print/filter/[email protected] print/filter/[email protected] print/filter/[email protected] print/[email protected] service/network/[email protected] service/network/smtp/[email protected] support/[email protected] system/[email protected] system/dtrace/[email protected] system/management/[email protected] system/management/snmp/[email protected] system/network/[email protected] text/[email protected] text/[email protected] web/browser/[email protected] web/server/[email protected] x11/server/[email protected]
and during installation of runtime/perl-522 i am facing this following error:
pkg install: The requested change to the system attempts to install multiple actions for link 'usr/perl5/pod' with conflicting attributes:
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/[email protected],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/[email protected],5.11-0.175.3.0.0.30.0:20150821T171525Z
These packages may not be installed together. Any non-conflicting set may be, or the packages must be corrected before they can be installed.
The requested change to the system attempts to install multiple actions for link 'usr/perl5/man' with conflicting attributes:
1 package delivers 'link mediator=perl mediator-priority=vendor mediator-version=5.22 path=usr/perl5/man target=5.22/man':
pkg://solaris/runtime/[email protected],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/[email protected],5.11-0.175.3.0.0.30.0:20150821T171525Z
These packages may not be installed together. Any non-conflicting set may be, or the packages must be corrected before they can be installed.
The requested change to the system attempts to install multiple actions for link 'usr/perl5/bin' with conflicting attributes:
1 package delivers 'link mediator=perl mediator-priority=vendor mediator-version=5.22 path=usr/perl5/bin target=5.22/bin':
pkg://solaris/runtime/[email protected],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/[email protected],5.11-0.175.3.0.0.30.0:20150821T171525Z
These packages may not be installed together. Any non-conflicting set may be, or the packages must be corrected before they can be installed.
////////////////////////////////////////////////////////////////////////////
so please suggest me what i need to do to install runtime/perl-522
Thanks in advance..
Upvotes: 1
Views: 793
Reputation: 21
Root cause is that perl-522 contains three mediated links which are not present in perl-512. Not sure why, but there you are (or are not, in this case ;-). The links are present in perl-512, but they are not mediated. You can see the missing mediators in the error messages above, as well as by inspecting the two packages:
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
I suspect in Ram's case, pkg install ... perl-512
installed a version of perl-512 which included the mediators. Not sure if this version has been removed from the public solaris repo, but for me, this command had no effect, and perl-512 remained without the mediators. As a result, the subsequent pkg install ... perl-522
continued to fail.
In case anyone else encounters this problem and google directs him or her to this page as it did me, here is how I solved it.
Inspired by Tim Foster's excellent posts on republishing packages, I used 'pkgmogrify' to update perl-512 to include the missing mediators. Steps are:
Pull a fresh copy of perl-512 from the solaris repo:
pkgrecv -s http://pkg.oracle.com/solaris/release --raw -d perl-512-proto [email protected]
Create a mogrify file, perl-512.mog:
<transform set name=pkg.fmri -> edit value pkg://[^/]+/ pkg://nightly/>
<transform link path=usr/perl5/bin -> add mediator perl>
<transform link path=usr/perl5/bin -> add mediator-priority vendor>
<transform link path=usr/perl5/bin -> add mediator-version 5.12>
<transform link path=usr/perl5/man -> add mediator perl>
<transform link path=usr/perl5/man -> add mediator-priority vendor>
<transform link path=usr/perl5/man -> add mediator-version 5.12>
<transform link path=usr/perl5/pod -> add mediator perl>
<transform link path=usr/perl5/pod -> add mediator-priority vendor>
<transform link path=usr/perl5/pod -> add mediator-version 5.12>
The first directive changes the publisher name from 'solaris' to 'nightly', which is the name of my local repo. (Substitute for 'nightly' whatever value is appropriate for your local repo.) The remaining directives add the mediator attributes to the three links.
Create an updated manifest; we'll call it '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
Publish the resulting package to your local repo:
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 is part of an incorporation. Set its version-lock facet to allow you to update it:
pkg change-facet version-lock.runtime/perl-512=false
Install perl-512 from your local repo:
pkg install pkg://nightly/runtime/perl-512
You should now see all four mediated links in 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
At this point, you can install perl-522 in the normal way without issue.
Downside to this approach is that you will need to handle any eventual updates to perl-512 yourself, as you are now tracking that package in your local repo.
Upvotes: 2
Reputation: 211
Now i got how to resolve this issue. follow given command to overcome this error:
pkg install --accept --licenses perl-512
pkg install --accept --licenses perl-522
after doing this target path will change to install package and no error will come.
Upvotes: 0