portsnap(8)

NAME

portsnap - fetch and extract compressed snapshots of the
ports tree

SYNOPSIS

portsnap  [-I]  [-d  workdir]  [-f  conffile]  [-k  KEY] [-p
portsdir]
         [-s server] command ... [path]

DESCRIPTION

The portsnap tool is used to fetch and update compressed
snapshots of the
FreeBSD ports tree, and extract and update an uncompressed
ports tree.

OPTIONS

The following options are supported:

-d workdir Store working files (e.g. downloaded updates)
in workdir.
(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, oper
ate 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.
(default: portsnap.FreeBSD.org , or as given in
the configuration file.)
path For extract command only, operate only on parts
of the ports
tree starting with path. (e.g. portsnap
sysutils/port
would extract sysutils/portsman, sysutils/port
snap, sysutils/portupgrade, etc.)

COMMANDS

The command can be any one of the following:

fetch Fetch a compressed snapshot of the ports tree,
or update the
existing snapshot. This command should only be
used interactively; for non-interactive use, you should
use the cron
command.
cron Sleep a random amount of time between 1 and
3600 seconds,
then operate as if the fetch command was speci
fied. As the
name suggests, this command is designed for
running from
cron(8); the random delay serves to minimize
the probability
that a large number of machines will simultane
ously attempt
to fetch updates.
extract Extract a ports tree, replacing existing files
and directo
ries. NOTE: This will remove anything occupy
ing the location where files or directories are being ex
tracted; in particular, any changes made locally to the ports
tree (for
example, adding new patches) will be silently
obliterated.
Only run this command to initialize your port
snap-maintained
ports tree for the first time, if you wish to
start over
with a clean, completely unmodified tree, or if
you wish to
extract a specific part of the tree (using the
path option).
update Update a ports tree extracted using the extract
command.
You must run this command to apply changes to
your ports
tree after downloading updates via the fetch or
cron commands. Again, note that in the parts of the
ports tree
which are being updated, any local changes or
additions will
be removed.

TIPS

+o If your clock is set to local time, adding the line
0 3 * * * root /usr/sbin/portsnap cron
to /etc/crontab is a good way to make sure you always
have an up-todate snapshot of the ports tree available which can
quickly be
extracted into /usr/ports. If your clock is set to UTC,
please pick
a random time other than 3AM, to avoid overly imposing
an uneven load
on the server(s) hosting the snapshots.
+o Running portsnap update from cron(8) is a bad idea -- if
you're ever
installing or updating a port at the time the cron job
runs, you'll
probably end up in a mess when portsnap updates or re
moves files
which are being used by the port build. However, run
ning portsnap -I
update is probably safe, and can be used together with
portversion(1)
to identify installed software which is out of date.
+o If you wish to use portsnap to keep a large number of
machines up to
date, you may wish to set up a caching HTTP proxy.
Since portsnap
uses fetch(1) to download updates, setting the
HTTP_PROXY environment
variable will direct it to fetch updates from the given
proxy. This
is much more efficient than mirroring the files on the
portsnap
server, since the vast majority of files are not needed
by any particular client.

PRIVACY NOTICE

As an unavoidable part of its operation, a machine running
portsnap will
make its public IP address and the list of files it fetches
available to
the server from which it fetches updates. Using these it
may be possible
to recognize a machine over an extended period of time, de
termine when it
is updated, and identify which portions of the FreeBSD ports
tree, if
any, are being ignored using "REFUSE" directives in
portsnap.conf. In
addition, the FreeBSD release level is transmitted to the
server.
Statistical data generated from information collected in
this manner may
be published, but only in aggregate and after anonymizing
the individual
systems.

FILES

/etc/portsnap.conf Default location of the portsnap config
uration file.
/var/db/portsnap Default location where compressed snap
shots are
stored.
/usr/ports Default location where the ports tree is
extracted.

SEE ALSO

fetch(1) fetch(3) portsnap.conf(5) sha256(8)

AUTHORS

Colin Percival <cperciva@FreeBSD.org>
FreeBSD August 13, 2005
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout