Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Oct 2016 19:27:13 +0100
From:      Gary Palmer <gpalmer@freebsd.org>
To:        "Kevin P. Neal" <kpn@neutralgood.org>
Cc:        Matthew Seaman <matthew@FreeBSD.org>, freebsd-stable@freebsd.org
Subject:   Re: 11.0 Install Question
Message-ID:  <20161019182713.GA73102@in-addr.com>
In-Reply-To: <20161019175523.GA37473@neutralgood.org>
References:  <53CC5785-5ABC-4235-9E3B-ECF6A9E0A74B@mac.com> <20161019144953.34e63e30@gmail.com> <DA7445C4-E802-4598-96BB-BEE781642EEC@mac.com> <58073101.2000203@quip.cz> <20161019085504.GA37097@xtaz.uk> <cc26405b-d824-8392-128d-182eafccbf8b@FreeBSD.org> <20161019175523.GA37473@neutralgood.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Oct 19, 2016 at 01:55:23PM -0400, Kevin P. Neal wrote:
> On Wed, Oct 19, 2016 at 10:08:04AM +0100, Matthew Seaman wrote:
> > On 2016/10/19 09:55, Matt Smith wrote:
> > > On Oct 19 10:38, Miroslav Lachman wrote:
> > >> Jonathan Haack wrote on 2016/10/19 10:09:
> > >>> Awe geez ... pkg won't work ... says "shared object "libssl.so.7" not
> > >>> found, required by "pkg"
> > >>
> > >> Do not panic, just run pkg-static to upgrade pkg it-self
> > >>
> > >> /usr/local/sbin/pkg-static install -f pkg
> > >>
> > > 
> > > I think that these instructions should be in the announcement release
> > > notes as this question comes up a lot. The notes just say something like
> > > "upgrade all your packages". Most people will then just try and run pkg
> > > upgrade and get that error without knowing how to solve it. It's not
> > > intuitive unless you have come across this before.
> > 
> > pkg(8) does have a built-in warning when it detects an OS major version
> > upgrade, which is to do a forced upgrade of pkg(8) so it matches the ABI
> > versions of system shlibs.  Did that warning appear in this case?
> 
> Loading of shared libraries generally happens before main() is entered.
> It follows that pkg wouldn't have a chance to do anything useful before
> dying if a library is missing.

Hi,

I don't think this is strictly true

On one of my systems at least (10.x), the main pkg binary is in
/usr/sbin which is a shim which either offers to install a full
pkg binary or calls the full pkg binary with whatever arguments you
passed it.  The main pkg binary lives in /usr/local/sbin/pkg.

It seems it should be possible to add some kind of check to the
shim to "do the right thing" and offer to use pkg-static to
upgrade the main pkg binary if the dynamically linked one is
broken.  Or maybe it should default to calling pkg-static instead
of pkg, which would prevent the problem in the first place.

Of course this assumes the user has /usr/sbin before /usr/local/sbin
on their path, but I suspect that is true in most cases

Regards,

Gary




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20161019182713.GA73102>