[rescue] Solaris 11 package conflicts

Phil Stracchino phils at caerllewys.net
Wed Aug 30 14:26:45 CDT 2017

On 08/30/17 14:47, Jerry Kemp wrote:
> 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.

> *) 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.

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.

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

Not an option, unfortunately.

> *) 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-512@5.12.5,5.11- to
pkg://solaris/runtime/perl-522@5.22.1,5.12-  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
  phils at caerllewys.net
  phil at co.ordinate.org
  Landline: +1.603.293.8485
  Mobile:   +1.603.998.6958

More information about the rescue mailing list