The FreeBSD Ports collection is a package management system for the FreeBSD operating system, providing an easy and consistent way of installing software packages. As of August 2016, there are over 26,000 ports available in the collection. It has also been adopted by NetBSD as the basis of its pkgsrc system.
The ports collection uses Makefiles arranged in a directory hierarchy so that software can be built, installed and uninstalled with the make command. When installing an application, very little (if any) user intervention is required after issuing a beginning command such as make install or make install clean in the ports directory of the desired application. In most cases the software is automatically downloaded from the Internet, patched and configured if necessary, then compiled, installed and registered in the package database. If the new port has needed dependencies on other applications or libraries, these are installed beforehand automatically.
Most ports are already configured with default options which have been deemed generally appropriate for most users. However, these configuration options (called knobs) can sometimes be changed before installation using the make config command, which brings up a text-based interface that allows the user to select the desired options.
Historically, each port (or software package) has been maintained by an individual port maintainer who is responsible for ensuring the currency of the port and providing general support. Today, many ports are maintained by special task forces or sub-projects, each with a dedicated mailing list (e.g. kde@FreeBSD.org, java@FreeBSD.org, etc.), while unmaintained ports are assigned to the generic group ports@FreeBSD.org. In general, anyone may become a port maintainer by contributing their favorite software to the collection. One may also choose to maintain an existing port with no active maintainer.