Discussion:
[rescue] Solaris 11 package conflicts
Phil Stracchino
2017-08-29 14:27:17 UTC
Permalink
Solaris 11.3 installs Perl 5.12
(pkg://solaris/runtime/perl-***@5.12.5,5.11-0.175.3.0.0.30.0). I'd like
to update this to Perl 5.22, but when I try, I get the following:

asgard:root:~:5 # pkg install
pkg://solaris/runtime/perl-***@5.22.1,5.12-5.12.0.0.0.122.0:20170510T193143Z
Creating Plan (Checking for conflicting actions): \
pkg install: 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/perl-***@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-***@5.12.5,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/perl-***@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-***@5.12.5,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/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/perl-***@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-***@5.12.5,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.



I've dug through document after document and I'm baffled as to how I
resolve this. Does anyone know a way to force the update?
--
Phil Stracchino
Babylon Communications
***@caerllewys.net
***@co.ordinate.org
Landline: +1.603.293.8485
Mobile: +1.603.998.6958
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Jerry Kemp
2017-08-30 18:47:29 UTC
Permalink
Hello Phil,

Disclaimer - I don't know that I have a direct, "this will fix it" answer, and
in lieu of that, here are a few suggestions. I'm sure that you have probably
come up with some (or possibly all), but minimally, its all food for thought.


*) uninstall 5.12 then install 5.22

Yep, I know that this is the stupid 'master of the obvious' reply, but trying to
be complete.



*) pkg man page entry discussing conflicting package installation

Example 27 Switch Conflicting Package Installation



In the case of two conflicting packages, change which package is
installed. Suppose package A depends on either package B or package C,
and B and C are mutually exclusive. If A and B are installed, use the
following command to switch to using C instead of B without unin-
stalling A:


$ pkg install --reject B C


*) pkg mediator parameter. On Solaris 11.3 boxes, it ships with both SunSSH and
OpenSSH. Also, it ships with both the classic Sys V syslog and rsyslog.

I used the "pkg mediator"command to move back and forth from SunSSH to OpenSSH,
and also from Sys V syslog to rsyslog on Solaris 11.x boxes.

<https://docs.oracle.com/cd/E53394_01/pdf/E54793.pdf>

here is a reference Oracle document, page 25, that shows an example with the (2)
ssh applications. May possibly be of use to you with your Perl issue.


*) open a trouble ticket with Oracle. If this is a $WORK system.



*) and lastly, just leave the system perl alone.

The system installed perl, and python too (check out what that pkg command you
are running is), have some deep hooks into the operating system, and are
typically compiled with the Sun Studio compiler. The Sun Studio compiler a fine
compiler, but not my favorite and I do not use it frequently.

On the perl side, one of the most visible thing uniquely supported by the system
perl is the 'kstat' facility, and there are others, but just in short, because
myself and end users do lots of perl thing, and need/use lots of perl modules
and customizations, I just leave the system perl alone.

All the in-house development stuff, and perl items + modules used and customized
is a home grown perl in /usr/local . Perl is an easy compile on Solaris,
(although the 'make test' seems takes a while) and pushing out an in-house perl
has saved me a lot of grief thru the years, vs messing with the system perl.
You can also update/upgrade an in-house grown perl as frequently as you deem
necessary.


Hope that there is something in here that helps, or minimally provides some
'food for thought'.

Jerry
Post by Phil Stracchino
Solaris 11.3 installs Perl 5.12
asgard:root:~:5 # pkg install
Creating Plan (Checking for conflicting actions): \
pkg install: The requested change to the system attempts to install
multiple actions
1 package delivers 'link mediator=perl mediator-priority=vendor
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
1 package delivers 'link mediator=perl mediator-priority=vendor
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
1 package delivers 'link mediator=perl mediator-priority=vendor
These packages may not be installed together. Any non-conflicting set may
be, or the packages must be corrected before they can be installed.
I've dug through document after document and I'm baffled as to how I
resolve this. Does anyone know a way to force the update?
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Phil Stracchino
2017-08-30 19:26:45 UTC
Permalink
Post by Jerry Kemp
Hello Phil,
Disclaimer - I don't know that I have a direct, "this will fix it" answer, and
in lieu of that, here are a few suggestions. I'm sure that you have probably
come up with some (or possibly all), but minimally, its all food for thought.
*) uninstall 5.12 then install 5.22
Yep, I know that this is the stupid 'master of the obvious' reply, but trying to
be complete.
Tried that one. Package manager won't allow it.
Post by Jerry Kemp
*) pkg man page entry discussing conflicting package installation
Example 27 Switch Conflicting Package Installation
In the case of two conflicting packages, change which package is
installed. Suppose package A depends on either package B or package C,
and B and C are mutually exclusive. If A and B are installed, use the
following command to switch to using C instead of B without unin-
$ pkg install --reject B C
Hmmmm.......
Post by Jerry Kemp
*) pkg mediator parameter. On Solaris 11.3 boxes, it ships with both SunSSH and
OpenSSH. Also, it ships with both the classic Sys V syslog and rsyslog.
I used the "pkg mediator"command to move back and forth from SunSSH to OpenSSH,
and also from Sys V syslog to rsyslog on Solaris 11.x boxes.
A combination of these approaches looked promising. So I started out with:

pkg set-mediator -I perl-522 perl

And that appeared to complete without any issues. So then I went on to:

pkg install --reject perl-512 perl-522

And it didn't like that one bit. Gave me a list of packages that
"require" perl-512 and told me there was no package to satisfy them.


Logic says there must be a way to do it, because why would Oracle
publish a package that can't ever actually be installed . . . Oh.
Right. Oracle.
Post by Jerry Kemp
*) open a trouble ticket with Oracle. If this is a $WORK system.
Not an option, unfortunately.
Post by Jerry Kemp
*) and lastly, just leave the system perl alone.
The system installed perl, and python too (check out what that pkg command you
are running is), have some deep hooks into the operating system, and are
typically compiled with the Sun Studio compiler. The Sun Studio compiler a fine
compiler, but not my favorite and I do not use it frequently.
On the perl side, one of the most visible thing uniquely supported by the system
perl is the 'kstat' facility, and there are others, but just in short, because
myself and end users do lots of perl thing, and need/use lots of perl modules
and customizations, I just leave the system perl alone.
I suspect I'll have to do that. But *then* I can't find any way to stop
/usr/lib/update-manager/update-refresh.sh from telling me every time it
runs that perl-522 is available as an update for perl-512 but it can't
install it.


What I've been trying and failing to find is some way to tell the
package manager to just ignore the dependency flag and replace it. It's
a newer version of the same package from the same source b
pkg://solaris/runtime/perl-***@5.12.5,5.11-0.175.3.0.0.30.0 to
pkg://solaris/runtime/perl-***@5.22.1,5.12-5.12.0.0.0.122.0. You'd
think it should be able to just update it in-place ... but no. I was
even able to get it to change the expected mediator to be perl-522:

1 package delivers 'link mediator=perl mediator-priority=vendor
mediator-version=5.22 path=usr/perl5/pod target=5.22/lib/pod':
1 package delivers 'link mediator=perl mediator-priority=vendor
mediator-version=5.22 path=usr/perl5/man target=5.22/man':
1 package delivers 'link mediator=perl mediator-priority=vendor
mediator-version=5.22 path=usr/perl5/bin target=5.22/bin':

... but it still refuses to actually replace the old package.

I have to believe that this is an oversight or a bug. Surely *other*
system packages can be updated as newer patched versions are released.
Why should perl be different?
--
Phil Stracchino
Babylon Communications
***@caerllewys.net
***@co.ordinate.org
Landline: +1.603.293.8485
Mobile: +1.603.998.6958
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
William Barnett-Lewis
2017-08-30 19:39:28 UTC
Permalink
Another "obvious" thought but can package manager run in single user mode,
perhaps from a console login?

On Aug 30, 2017 2:26 PM, "Phil Stracchino" <***@caerllewys.net> wrote
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Phil Stracchino
2017-08-30 19:43:45 UTC
Permalink
Post by William Barnett-Lewis
Another "obvious" thought but can package manager run in single user mode,
perhaps from a console login?
Hmmmmm...... That's a good question, and one that I hadn't considered.
--
Phil Stracchino
Babylon Communications
***@caerllewys.net
***@co.ordinate.org
Landline: +1.603.293.8485
Mobile: +1.603.998.6958
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Jerry Kemp
2017-08-30 22:24:51 UTC
Permalink
couple more VirtualBox screen captures
.......................................

solaris11vm /root 62 # pkg list | grep "runtime/perl"
runtime/perl-512 5.12.5-5.12.0.0.0.122.0 i--
runtime/perl-522 5.22.1-5.12.0.0.0.122.0 i--
runtime/perl-common 1-5.12.0.0.0.122.0 i--


solaris11vm /root 63 # pkg mediator
MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
apache system 2.2 system
apr-1-config system 1.5 system
apu-1-config system 1.5 system
gcc system 4.9 system
golang system 1.7 system
java system 1.8 system
openssl vendor vendor default
perl vendor 5.22 vendor <---------------
python vendor 2.7 vendor
sendmail vendor vendor sendmail
ssh system local openssh
solaris11vm /root 64 #
Hello again Phil,
another partial, but successful answer. I didn't figure this out on my own.
Fired up duckduckgo.com and searched for 'Solaris 11 perl 522 upgrade'
came across this link
<https://serverfault.com/questions/786711/trying-to-install-golang-on-a-solaris-11-3-vm>
which pointed to this link
<http://docs.oracle.com/cd/E26502_01/html/E28984/gmias.html#scrolltoc>
I fired up a Solaris 11.3 vm in virtual box to play with this.
Not a straight forward answer, but I now have a stock Solaris 11.3 x64/x86
install that is upgraded to perl 5.22.x
Note, these are copy-n-paste from the virtualbox window.
hope this helps, good luck.
Jerry
.........................................................................
solaris11vm /root 56 # perl -v
This is perl 5, version 12, subversion 5 (v5.12.5) built for i86pc-solaris-64int
(with 7 registered patches, see perl -V for more detail)
Copyright 1987-2012, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
solaris11vm /root 57 #
solaris11vm /root 59 # pkg change-facet version-lock.runtime/perl-512=false
solaris11vm /root 60 # pkg change-facet facet.version-lock.runtime/perl-512=false
solaris11vm /root 61 # pkg facet
FACET VALUE SRC
locale.* False local
locale.de True local
locale.de_DE True local
locale.en True local
locale.en_US True local
locale.es True local
locale.es_ES True local
locale.fr True local
locale.fr_FR True local
locale.it True local
locale.it_IT True local
locale.ja True local
locale.ja_* True local
locale.ko True local
locale.ko_* True local
locale.pt True local
locale.pt_BR True local
locale.zh True local
locale.zh_CN True local
locale.zh_TW True local
runtime/perl-512 False local
version-lock.runtime/perl-512 False local
solaris11vm /root 62 #
solaris11vm /root 64 # pkg contents -r -o fmri,type -t depend developer/golang-15
FMRI TYPE
release/evaluation require
solaris11vm /root 65 # pkg install golang
Packages to install: 20
Packages to update: 1
Packages to change: 1
Mediators to change: 2
Create boot environment: No
Create backup boot environment: Yes
Building new search index 762/762
DOWNLOAD PKGS FILES XFER (MB) SPEED
Completed 22/22 12044/12044 164.3/164.3 887k/s
PHASE ITEMS
Removing old actions 11/11
Installing new actions 11578/11578
Updating modified actions 833/833
Updating package state database Done
Updating package cache 1/1
Updating image state Done
Creating fast lookup database Done
Reading search index Done
Building new search index 782/782
Updating package cache 1/1
solaris11vm /root 66 # rehash
solaris11vm /root 67 # perl -v
This is perl 5, version 22, subversion 1 (v5.22.1) built for
i86pc-solaris-thread-multi-64
Copyright 1987-2015, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
solaris11vm /root 68 # cat /etc/release
Oracle Solaris 11.3 X86
Copyright (c) 1983, 2015, Oracle and/or its affiliates. All rights reserved.
Assembled 06 October 2015
solaris11vm /root 69 # pkg info entire | grep Branch
Branch: 0.175.3.1.0.5.2
solaris11vm /root 70 #
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Phil Stracchino
2017-08-30 22:52:17 UTC
Permalink
solaris11vm /root 59 # pkg change-facet version-lock.runtime/perl-512=false
solaris11vm /root 60 # pkg change-facet facet.version-lock.runtime/perl-512=false
Aha! THIS did the trick. Ironically I'm pretty sure I'd already done
this for some other package i needed to update ... OpenSSL, I think
... I'm not sure why I didn't think of trying it on Perl, except that I
didn't realize it was the same problem. I now have both perl-512 and
perl-522 installed, and the tools that want modules included only with
perl-522 are happy, and update-manager SHOULD stop nagging me that it's
unable to update.

The amusing part of this is that it didn't need to uninstall perl-512 to
accomplish the update *anyway* ...
--
Phil Stracchino
Babylon Communications
***@caerllewys.net
***@co.ordinate.org
Landline: +1.603.293.8485
Mobile: +1.603.998.6958
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Jerry Kemp
2017-08-31 21:39:53 UTC
Permalink
Nope, thanks for posting this.

I've seen it before, but just never had a big enough fire to push forward thru
it to a resolution.

Not that I am taking your situation lightly, but it is always more fun when the
fire being fought is someone else's fire and not your own.

As a follow up, please post/share if 'forcing the issue' here ends up causing
any additional problems or issues. At $WORK, this life, and the past few, SOP
is to leave the system perl (&& python) alone, and go module crazy with the
in-house one.

Have a great holiday weekend!!!

Jerry
Post by Phil Stracchino
solaris11vm /root 59 # pkg change-facet version-lock.runtime/perl-512=false
solaris11vm /root 60 # pkg change-facet facet.version-lock.runtime/perl-512=false
Aha! THIS did the trick. Ironically I'm pretty sure I'd already done
this for some other package i needed to update ... OpenSSL, I think
... I'm not sure why I didn't think of trying it on Perl, except that I
didn't realize it was the same problem. I now have both perl-512 and
perl-522 installed, and the tools that want modules included only with
perl-522 are happy, and update-manager SHOULD stop nagging me that it's
unable to update.
The amusing part of this is that it didn't need to uninstall perl-512 to
accomplish the update *anyway* ...
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue

Loading...