Upgrading to 7.0 - stupid requirements
Mark Andrews
Mark_Andrews at isc.org
Fri Feb 29 03:14:57 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.
>
> Running "portupgrade -nrR <package-list>" repeated until
> <package-list> stabilised used to also work for just-in-time
> upgrades like this. Unfortunately "portupgrade -nrR" no
> longer reports packages that won't be upgraded. There are
> no longer any "-" entries in the output.
>
> I need to see what "portupgrade -nrRf" does before reporting
> this.
For example if I was to upgrade firefox I'd have to upgrade
548 of the 582 packages on this machine.
Mark
getlist:
#!/bin/sh -f
sed -e '/Depends on:/d' \
-e '/Information for/d' \
-e '/Required by:/d' \
-e '/^$/d' \
-e 's/Dependency://' \
-e 's/ //g' |
sort -u
% pkg_info -rR "*fox*" | ./getlist | wc
100 100 1665
% pkg_info -rR "*fox*" | ./getlist | xargs pkg_info -rR | ./getlist | wc
467 467 8435
% pkg_info -rR "*fox*" | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | wc 547 547 9780
drugs:9.4.x 14:03 {2701} % pkg_info -rR "*fox*" | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | wc
548 548 9793
% pkg_info -rR "*fox*" | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | wc
548 548 9793
% pkg_info | wc
582 3869 34258
%
> > 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
> > _______________________________________________
> > freebsd-stable at freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> > To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
> --
> Mark Andrews, ISC
> 1 Seymour St., Dundas Valley, NSW 2117, Australia
> PHONE: +61 2 9871 4742 INTERNET: Mark_Andrews at isc.org
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
--
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742 INTERNET: Mark_Andrews at isc.org
More information about the freebsd-stable
mailing list