Re: Updating the ports from STABLE to CURRENT

From: Kevin Oberman <oberman_at_es.net>
Date: Fri, 19 Jan 2007 09:59:33 -0800
> Date: Fri, 19 Jan 2007 17:40:29 +0100
> From: "Bartek Dedersen" <kyrosthebravekingofpersia_at_gmail.com>
> Sender: owner-freebsd-current_at_freebsd.org
> 
> Hi.
> 
> I thought of trying out the bleeding edge and hoped my knowledge of
> BSD is high enough to handle it without any major problems.
> 
> But: I installed FreeBSD-6.1 with the provided ISO  package available
> on freebsd.org. Some packages were installed via pkg_add. After one
> week, the technician of the German telecommunication firm managed to
> visit me and put his finger on the cables in the cellar. Well, I
> thought of upgrading some packages with the ports-subsystem. It was
> pretty easy and nice. But then I wanted more and installed CURRENT
> from the CVS-source. Some buildworlds and kernel configuration later,
> I had a 7.0 Current. Ok, after a startx I got some error that libXmmu
> cannot be found. Ok, so I tried to recompile xorg-libraries. Ok, but
> there were lots of broken packages due to a filesystem breakdown after
> a kernel panic.
> Well, I tried to delete it with pkg_delete -f and it worked. Now, I am
> recompiling it from the updated ports-collection.
> 
> Do I have to expect more failures and do I see an upcoming recompiling
> week due to broken libraries which do not work on CURRENT? Is it more
> useful to reinstall BSD from scratch and update it first?
> 
> I know, CURRENT is not for productive use but I need something to put
> my fingers on. Maybe I will learn.
> 
> Is there a command to recompile, deinstall and reinstall every
> installed package from the ports-system? If not, it will be hell.

Welcome to the world of the bleeding edge.

The problem you are seeing is probably a result of the changing APIs and
ABIs in current. The effect of this is that ports will need to be
rebuilt fairly often and the libraries to which they are linked change. 

The ABI is frozen within a major version and compatibility shims are
built to allow binaries from older versions to run after a new version
is released, but while it is still "current", there is no alternative to
frequent re-builds of ports.

In the future (post V7), it is hoped that symbol versioning will
eliminate this problem and make running current easier.

There are two tools that can make life easier by automating much of
this. You should install sysutils/portupgrade and sysutils/portmanager.
These do similar things to maintain ports, but in different ways. I have
only used portupgrade, but have seen reports that portmanager has some
advantages at the cost of more time spent in the initial setup.

Another import detail is that you update the ports tree and, if you
initially installed the ports tree from the install media, you need to
'rm -rf /usr/ports/*' and then download a full clean tree with csup.
csup will delete old files only if it knows about them and it will not
know about any that were not fetched by csup. This can result in broken
ports. 

Good luck!
-- 
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman_at_es.net			Phone: +1 510 486-8634
Key fingerprint:059B 2DDF 031C 9BA3 14A4  EADA 927D EBB3 987B 3751

Received on Fri Jan 19 2007 - 17:12:32 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:05 UTC