Upgrading to 7.0 - stupid requirements

Skip Ford skip at menantico.com
Fri Feb 29 01:06:31 UTC 2008


Marko Lerota wrote:
> In http://www.freebsd.org/releases/7.0R/announce.html says 
> 
> Updating Existing Systems
> 
> > An upgrade of any existing system to FreeBSD 7.0-RELEASE constitutes 
> > a major version upgrade, so no matter which method you use to update 
> > an older system you should reinstall any ports you have installed on 
> > the machine. This will avoid binaries becoming linked to inconsistent 
> > sets of libraries when future port upgrades rebuild one port but not 
> > others that link to it. This can be done with:
> 
> # portupgrade -faP
> 
> etc...
> 
> Why!!!

If you never rebuild any ports at all after upgrading to a new major
version, then your ports should all continue to work as long as they can
find the old libraries they need.  However, once you rebuild a port, it
will link to new libraries, and may also link to other libraries that
continue to be linked to the old libraries.  You may end up with a binary
being linked against libc.so.6 and libc.so.7, which will not work.

> Then the servers. Why should I reinstall all my databases and such? I always
> liked that FreeBSD base (OS) is separated from packages. And no matter what I 
> do with the packages, my OS will always work. I don't want dependency
> hell like in Linux. Now you are telling me that my database might not work
> after upgrade to a new version. Is that it?

Ports that depend on other ports are vulnerable to this problem.  Ports
that only require base libraries are not.  The more ports a port depends
on, the more likely you are to run into problems if you don't rebuild all
ports to begin with.

So, if you don't ever rebuild any of your ports at all, everything should
still work until you finally do rebuild a port.  At that point, if that port
doesn't depend on other ports and only links to base libraries, you'll
still be fine.  Once you rebuild a port that depends on other ports,
things may break if you don't force a rebuild of every port that port
depends on.

The paragraph you quoted above attempts to avoid that breakage and the
mailing list questions that ensue, by forcing a rebuild of all ports to
begin with.

-- 
Skip


More information about the freebsd-stable mailing list