portupgrade stale dependencies

Andrew P. infofarmer at gmail.com
Sun Oct 30 18:00:38 PST 2005


On 10/31/05, John DeStefano <john.destefano at gmail.com> wrote:
> On 10/29/05, Andrew P. <infofarmer at gmail.com> wrote:
> > On 10/29/05, John DeStefano <john.destefano at gmail.com> wrote:
> > >
> > > Needless to say, this process wasn't much fun.  What can I do to keep
> > > this from happening again?  What can/can't I safely include in cron to
> > > automate database and index maintenance?
> > >
> >
> > cvsup or portsnap, then portsdb -uUF. Work under
> > any circumstances, leave you with updated ports
> > tree and indexes.
>
> If I were to continue to use portsnap, which arguments can I safely
> add to /etc/crontab? I know "portsnap cron" should be safe, but if I
> want to completely automate the update process (not for installing
> packages, but for keeping the ports tree, database, and indexes
> current), should I also add an entry for "portsnap update" and
> "portsdb -uUF"?
>
> >
> > You can also try portupgrade -aF (prefetches
> > needed files to speed up manual upgrade at a later
> > time) and portsclean -DP (removes sources and
> > packages which become outdated due to ports
> > tree updates).
> >
>
> Would you also recommend cron entries for these two commands?
>
> I used to use a cron job to run cvsup, and I'd like to implement a
> better, more complete automated solution, so I don't tangle up my
> system's packages and dependencies again.
>

I think the best way is to create a shell script, like this:

#!/bin/sh
/usr/local/sbin/portsnap cron && \
/usr/local/sbin/portsnap update && \
/usr/local/sbin/portsdb -uUF && \
/usr/local/sbin/portupgrade -aF && \
/usr/local/sbin/portsclean -DP

and run it at an hour, when you're most unlikely to
perform any kind of port upgrading. As portsnap
manpage warns, if both portsnap (in the process
of update) and portupgrade ever happen to access
the same directory at once, it might ruin your
ports tree. You'll have to do "portsnap extract"
after that. You can leave out portsclean and run
it manually, because it can create some load
(which is not desirable on a production server).

I run this script daily at 8-9 in the morning (I usually
start messing with servers after 11). It never failed,
and it always keeps everything up-to-date.


More information about the freebsd-questions mailing list