Using portsnap to upgrade FreeBSD ports tree

I was running cvsup as cronjob daily to update FreeBSD ports tree.

Today i installed portsnap on FreeBSD 5.4 server.

portsnap is more efficient way of updating ports tree. portsnap is part of base system on FreeBSD 6.

With portsnap, you only update files that are changed. So you can update your ports tree much faster than with cvsup.

cd /usr/ports/sysutils/portsnap
make install clean

Will install portsnap.

First step is fetch port snapshot, this is done with command

# portsnap fetch

After fetching, you need to extract it if you are doing this first timr

# portsnap extract

After the initial installation, you don’t have to extract, just update, so only changed files get overwritten.

# portsnap update

That is whenever you need to update ports, just run

# /usr/local/sbin/portsnap fetch
# /usr/local/sbin/portsnap update

To automate the port upgrading i created a shell script


server14# cat /root/utils/

/usr/local/sbin/portsnap fetch
/usr/local/sbin/portsnap update


chmod it 755, so that the script can be executed

server14# chmod 755 /root/utils/

and add it to cronjob

server14# crontab -l
0 3 * * * /root/utils/

That is portsnap will update ports tree everyday at 3 AM.

Newer version of portsnap support

# portsnap fetch update

server14# portsnap fetch
Fetching public key… done.
Fetching snapshot tag… done.
Fetching snapshot metadata… done.
Fetching snapshot generated at Thu Feb 23 03:09:19 UTC 2006:
f4b0454e7bce8a4decdb9190e22b8325a966e92005df5f100% of 39 MB 1079 kBps 00m00s
Extracting snapshot… done.
Verifying snapshot integrity… done.
Fetching snapshot tag… done.
Fetching snapshot metadata… done.
Updating from Thu Feb 23 03:09:19 UTC 2006 to Thu Feb 23 22:45:24 UTC 2006.
Fetching 4 metadata patches… done.
Applying metadata patches… done.
Fetching 0 metadata files… done.
Fetching 1542 patches…..10 ….1540. done.
Applying patches… done.
Fetching 0 new ports or files… done.

Posted in Uncategorized. Bookmark the permalink.