Updating Ports on Production Servers

Patrik Forsberg patrik.forsberg at dataphone.net
Mon Jun 9 23:15:57 PDT 2003


> > I am a big fan of the ports collection and use the ports to 
> build the
> > programs I use on our production servers. Now I am wanting 
> to update some
> > ports and have a chicken and egg issue. If I go ahead and 
> update a port
> > (pure-ftpd for example)...
> >
> > After I run "CVSUP portfile"  the old version that's running has no
> > graceful way of being removed.  If I try to remove it I am 
> notified that
> > the version that is running is not on the machine so then I 
> guess force
> > the uninstall? Either that or just do a make - make install 
> and overwrite
> > the old port binaries with the new binaries ( this does not 
> seem good
> > either).
> >
> > It appears the only way to cleanly upgrade a port is to 
> deinstall the
> > current port. Run CVSUP portfile... and get the new port 
> files... do a
> > make - make install and get the new version of the port 
> installed. This
> > opens the machine to several minutes of downtime while the 
> program is
> > being made... (not good either)
> >
> > Please tell me the way that it's being handled on your 
> servers/ network...


What a "make deinstall" aculy does is a pkg_delete, so what you could do
is a pkg_delete <old-package-name> and then "make install" the new
package.

You could also install the package called "portupgrade", that can be
found under "ports/sysutils", when you've installed this port you can
simply do a "portupgrade <port-name>" and it will take care of
deinstalling the old port and installing the new one. 

The bad part about using portupgrade is that you can't specify any
"special" make parameters if you use any - perhaps I haven't dug deap
enough into portupgrade to find out how but from what I've seen you
can't. So if you use any make params to the port I'd surgest doing a
"pkg_delete <port-name>" and then "make install" it rather then using
portupgrade.

The good thing about portupgrade tho is that you can do a system-wide
upgrade without knowing which packages that need to be upgraded.

Regards,
Patrik


More information about the freebsd-isp mailing list