cvsup and portupgrade

Richard Coleman richardcoleman at mindspring.com
Wed Oct 8 13:23:24 PDT 2003


David Bear wrote:
> I'm still trying to muddle through the loads of different ways to keep
> FreeBSD 'current' -- meaning, safely patched, aka RELENG_5_1 (for me)
> 
> As I conceptualize the operations there are two levels of 'patching',
> 1) the kernel and base system 
> 2) then all the ports that I may have installed
> 
> I've read the cvsup docs and can see how to update both the kernel
> source and ports.  But the problem I see is the ports.  After the
> ports collection has cvsupdated, I would still need to do a make
> install for each port I have previous installed, correct?  (or, more
> appropriately, make deinstall, the cvsup the ports, then make install)
> Is this making things more difficult?  Seems there really should be a
> cleaner way to keep things updated.
> 
> I've heard reference to a portupgrade package, but can't find any
> details on how and what it really does-- and how well it plays with
> cvsupdate.  
> 
> The other rotten thing here is that cvsupdate requires modula-3 -- and
> portupgrade requires ruby...  It would really be nice if all this were
> done in the most perfect language, python;-)
> 
> looking for some advice.. thx.

cvsup and portupgrade do different things.

Cvsup will keep your copy of a particular source trees (/usr/src, 
/usr/port, etc.) up-to-date with the current sources in the CVS 
repository.  Actually, cvsup can track the sources along any CVS branch 
point or by date.  There is usually a pre-built binary package for 
cvsup, so you don't generally need to build it from source (or build the 
modula3 package).  Just get it from the FreeBSD ftp site and use pkg_add 
to add the binary package.

But once you've got the updated sources, you need to update your 
machine.  For /usr/src, you have to follow the procedures to "build the 
world"  Check the handbook for this.

For /usr/port, you can update manually (pkg_delete the old version and 
make install the new version) or use portupgrade.

To get started with portupgrade, just do:

     cd /usr/ports/sysutils/portupgrade
     make install clean
     rehash              # if you are using csh or tcsh
     pkgdb -F
     portsdb -Uu

If you want to see the ports that are available for updating, use the 
command "portversion".

You will need to re-run "portsdb -Uu" every time you update the ports 
source tree using cvsup.

Richard Coleman
richardcoleman at mindspring.com




More information about the freebsd-questions mailing list