Welcome to Linux Screw! If you're new here, you may want to subscribe our RSS feed.
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.
- Install the net/cvsup-without-gui package:
# pkg_add -r cvsup-without-gui
After this package will be downloaded and installed.
- Run cvsup:
# cvsup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
cvsup is usually located at /usr/local/bin directory. Change cvsup.FreeBSD.org to a CVSup server near you. See CVSup Mirrors for a complete listing of mirror sites.
- 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
- 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
- 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
- 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.
- As root, run sysinstall (/stand/sysinstall in FreeBSD versions older than 5.2) as shown below:
# sysinstall
- Scroll down and select Configure, press Enter.
- Scroll down and select Distributions, press Enter.
- Scroll down to ports, press Space.
- Scroll up to Exit, press Enter.
- Select your desired installation media, such as CDROM, FTP, and so on.
- Scroll up to Exit and press Enter.
- Press X to exit sysinstall.

Nice to get a freeBSD tip from a linux guy.
I thought of giving up a semi-needed app installation for today after seeing absence of ports tree (wasn’t really motivated to look in the handbook), but here - ‘portsnap fetch’ is about finishing its job while I’m typing this…
It’s very nice to meet here fellow countryman, Sasha