Updating ports tree

ortsnap is a alternative system for securely distributing and updating the Free BSD ports tree, which is easier to use than CVSup. Like CVSup, Portsnap uses a pull model of updating: The packaged and signed ports trees are placed on a web server which waits passively for clients to request files by either run portsnap manually by users or set up a cron job to download updates automatically on a regular basis.

At command line, the following options are supported, although most of the time it no need to be used, some can be configured in configuration file itself: -d workdir : Store working files (e.g. (default: /var/db/portsnap, or as given in the configuration file) -f conffile : Read the configuration from from conffile.

(default: /etc/portsnap.conf) -I : For the update command, update INDEX files, but not the rest of the ports tree.

-k KEY : Expect a public key with given SHA256 hash.

(default: read value from configuration file) -p portsdir : When extracting or updating an uncompressed snapshot, operate on the directory portsdir.

(default: /usr/ports/, or as given in the configuration file.) -s server : Fetch files from the specified server or server pool. Free , or as given in the configuration file.) path : For extract command only, operate only on parts of the ports tree starting with path. portsnap sysutils/port would extract sysutils/portsman, sysutils/portsnap, sysutils/portupgrade, etc.) Note: For updating of Free BSD Ports Tree, step 1 and 3 can be combined into single command: portsnap fetch update (not support in older version of Portsnap).

Running Portsnap as Cron Job portsnap fetch will not be able to execute from a cron job to avoid burden of sudden surge of downloading request to Portsnap servers.

Instead, a special portsnap cron command exists, which waits and sleeps for a random duration up to 3600 seconds before fetching updates, as if the fetch command is specified.

To run portsnap automatically with cron job, just add the line into /etc/crontab (the line set the time to 3 AM everyday, you can choose your own timing): from cron is not recommended as it may cause problem if installing or updating of a port happens at the time the cron job runs.

Portsnap will updates or removes files which are being used by the port build.

However, running to update the ports Index files is possible, and can be used together with portversion to identify installed software which is out of date.

To update ports compressed snapshot and the INDEX files in /usr/ports/, and send an email if any installed ports are out of date, use the following line in /etc/crontab: Note: Older version of portsnap does not support listing multiple commands (e.g., cron update) in the same invocation of portsnap.

Tags: , ,