libstdc++

Freddie Cash fjwcash at gmail.com
Wed Jan 11 22:41:13 UTC 2017


On Wed, Jan 11, 2017 at 2:29 PM, Dave Horsfall <dave at horsfall.org> wrote:

> On Wed, 11 Jan 2017, Adam Weinberger wrote:
>
> > Okay. So what command did you use to rebuild all your ports? You won't
> > really be able install anything new until you've rebuilt everything.
> > Everything.
>
> Haven't had a chance to try your script yet; been too busy trying to get
> my nameserver to support my internal domain ".kfu" (yes, it's 10.3); it
> doesn't even work on the box itself, but the resolver is fine.  My guess
> is that something has changed in BIND...
>
> > I'm not aware of any problems building alpine on 10.3. I do see a typo
> > in its OpenSSL handling and I'll fix that shortly.
>
> That's the only problem with Alpine; it's not seeing "1.0.2j" of OpenSSL,
> yet wants ">= 1.0.1c", hence the 9.3 version...  It was critical that I
> get email working ASAP, and this is the only FreeBSD box I have.
>
> > If you keep running into headaches upgrading in-place, you should really
> > switch to poudriere. Even if you get stuff working, you should really
> > switch to poudriere. See
> > https://www.freebsd.org/handbook/ports-poudriere.html for how to get up
> > and running with it.
>
> I thought poudriere was for building packages to support a server farm?
>
> Sorry for all this, but until now this box has always been on 9.x, so this
> is my first major upgrade, hence I have zero experience...
>

​Don't manually "install" libraries from previous versions.  Instead, use
the "compat9x" port; it's what it's there for.  This will install onto a
10.x or 11.x box all the libraries from a 9.x install that are no longer
present, but puts them into /usr/local/.  The linker that comes with
FreeBSD knows to look there​, so no changes required.

An upgrade from 9.x to 10.x looks something like this (for minimal
downtime):
  - upgrade the base OS using freebsd-update or build world
  - install the compat9x port so that your currently installed ports
continue to work
  - rebuild/reinstall *ALL* ports currently installed so that they link
against the new versions of libraries
  - remove the compat9x port
  - reboot to make sure everything is restarted and using the correct
libraries

By using the compat9x port, you can take your time upgrading the installed
ports.  But you *MUST*, eventually, reinstall them all.  Don't try to
upgrade the ports piecemeal.  They all need to be reinstalled when going
across major OS versions.

An easier, "faster", safer way to do an upgrade across major versions is to
use a custom pkg repo (built using poudriere or synth).  That way, all your
ports are built with the options you want, but are not installed anywhere
on the system; just pkg files are created.  You continue to use the
currently installed ports, via the compat9x libs, until the repo is built
with all your desired ports.

Then, the upgrade of the installed ports is as simple as:
  - pkg update
  - pkg upgrade

No muss, no fuss, minimal downtime for replacing the actual ports.

​Between freebsd-update and pkg, maintaining and upgrading FreeBSD boxes
has become almost point-n-click easy.  And with the introduction of
poudriere (and to a lesser extent synth), you can get all the benefits of
custom compiled ports with all the benefits of binary package
installs/upgrades.
​
-- 
Freddie Cash
fjwcash at gmail.com


More information about the freebsd-ports mailing list