Get FreeBSD ports tree after OS installation

Many new FreeBSD users face the problem when /usr/ports directory is missing just after OS installation is finished. Here are three ways from FreeBSD Handbook to obtain ports collection.

1. CVSup

Make sure /usr/ports is empty before you run CVSup for the first time! If you already have the Ports Collection present, obtained from another source, CVSup will not prune removed patch files.

  1. Install the net/cvsup-without-gui package:
    # pkg_add -r cvsup-without-gui

    After this package will be downloaded and installed.

  2. Run cvsup:
    # cvsup -L 2 -h /usr/share/examples/cvsup/ports-supfile

    cvsup is usually located at /usr/local/bin directory. Change to a CVSup server near you. See CVSup Mirrors for a complete listing of mirror sites.


  3. Running the cvsup command later will download and apply all the recent changes to your Ports Collection, except actually rebuilding the ports for your own system.

2. Portsnap

Portsnap is an alternative system for distributing the Ports Collection. It was first included in FreeBSD 6.0. On older systems, you can install it from ports-mgmt/portsnap package:

# pkg_add -r portsnap
  1. Since FreeBSD 6.1-RELEASE and with recent versions of the Portsnap port or package, you can safely skip this step. The /usr/ports will be created automatically at first use of the portsnap command. With previous versions of Portsnap, you will have to create an empty directory /usr/ports if it does not exists:
    # mkdir /usr/ports
  2. Download a compressed snapshot of the Ports Collection into /var/db/portsnap. You can disconnect from the Internet after this step, if you wish.
    # portsnap fetch
  3. If you are running Portsnap for the first time, extract the snapshot into /usr/ports:
    # portsnap extract

    If you already have a populated /usr/ports and you are just updating, run the following command instead:

    # portsnap update

3. Sysinstall

This method involves using sysinstall to install the Ports Collection from the installation media. Note that the old copy of Ports Collection from the date of the release will be installed. If you have Internet access, you should always use one of the methods mentioned above.

  1. As root, run sysinstall (/stand/sysinstall in FreeBSD versions older than 5.2) as shown below:
    # sysinstall
  2. Scroll down and select Configure, press Enter.
  3. Scroll down and select Distributions, press Enter.
  4. Scroll down to ports, press Space.
  5. Scroll up to Exit, press Enter.
  6. Select your desired installation media, such as CDROM, FTP, and so on.
  7. Scroll up to Exit and press Enter.
  8. Press X to exit sysinstall.

Stefan Durand

My name is Stefan, I'm the admin of LinuxScrew. I am a full-time Linux/Unix sysadmin, a hobby Python programmer, and a part-time blogger. I post useful guides, tips, and tutorials on common Linux and Programming issues. Feel free to reach out in the comment section.

Leave a Reply

Your email address will not be published. Required fields are marked *