24.3. Portsnap: a Ports Collection Update Tool
Prev | Chapter 24. Updating and Upgrading FreeBSD | Next

## 24.3. Portsnap: a Ports Collection Update Tool

Written by Tom Rhodes.
Based on notes provided by Colin Percival.

The base system of FreeBSD includes portsnap(8) for updating the Ports Collection. This utility connects to a FreeBSD site, verifies the secure key, and downloads a new copy of the Ports Collection. The key is used to verify the integrity of all downloaded files. To download the latest Ports Collection files, issue the following command:

`#` `portsnap fetch` Looking up portsnap.FreeBSD.org mirrors... 9 mirrors found. Fetching snapshot tag from geodns-1.portsnap.freebsd.org... done. Fetching snapshot metadata... done. Updating from Tue May 22 02:12:15 CEST 2012 to Wed May 23 16:28:31 CEST 2012. Fetching 3 metadata patches.. done. Applying metadata patches... done. Fetching 3 metadata files... done. Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done. Applying patches... done. Fetching 133 new ports or files... done.

What this example shows is that portsnap(8) has found and verified several patches to the current ports data. This also indicates that the utility was run previously; if it was a first time run, the collection would have simply been downloaded.

When portsnap(8) successfully completes a `fetch` operation, the Ports Collection and subsequent patches which exist on the local system have passed verification. The first time `portsnap` is executed, use `extract` to install the downloaded files:

`#` `portsnap extract` /usr/ports/.cvsignore /usr/ports/CHANGES /usr/ports/COPYRIGHT /usr/ports/GIDs /usr/ports/KNOBS /usr/ports/LEGAL /usr/ports/MOVED /usr/ports/Makefile /usr/ports/Mk/bsd.apache.mk /usr/ports/Mk/bsd.autotools.mk /usr/ports/Mk/bsd.cmake.mk `...`

To update an already installed Ports Collection, use `portsnap update`:

`#` `portsnap update`

The process is now complete, and applications may be installed or upgraded using the updated Ports Collection.

When using `fetch`, the `extract` or the `update` operation may be run consecutively:

`#` `portsnap fetch update`

This command downloads the latest version of the Ports Collection and updates the local version under `/usr/ports`.

Prev | Up | Next
24.2. FreeBSD Update | Home | 24.4. Updating the Documentation Set

All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.