Automatically backup installed FreeBSD packages
A while ago I threw together this script to automatically create package files for all installed ports on a FreeBSD box. That way, if a portupgrade
doesn't work out, you can delete the broken package, and pkg_add
the backup.
Stick this in /usr/local/etc/periodic/daily
, and the
system will automatically bundle up copies of the installed software
and stick them in /usr/local/packages
if they don't already
exist in there.
#!/bin/sh # # Make sure backups exist of all installed FreeBSD packages # # 2005-03-20 Barry Pederson <bp@barryp.org> # ARCHIVE="/usr/local/packages" # # Figure out which pkg_tools binaries to use # if [ -f /usr/local/sbin/pkg_info ] then PKG_TOOLS="/usr/local/sbin" else PKG_TOOLS="/usr/sbin" fi # # Make sure backup directory exists # if [ ! -d $ARCHIVE ] then mkdir $ARCHIVE fi cd $ARCHIVE for p in `${PKG_TOOLS}/pkg_info -E "*"` do if [ ! -f ${p}.tgz ] then ${PKG_TOOLS}/pkg_create -b ${p} fi done