FreeBSD provides two methods for installing applications: binary packages and compiled ports. Each method has its own benefits:
If an application installation does not require any
customization, installing the package is sufficient. Compile
the port instead whenever an application requires customization
of the default options. If needed, a custom package can be
compiled from ports using make
package
.
A complete list of all available ports and packages can be found here.
Packages are pre-compiled applications, the FreeBSD
equivalents of .deb
files on
Debian/Ubuntu based systems and .rpm
files on Red Hat/Fedora based systems. Packages are
installed using pkg
. For example,
the following command installs
Apache 2.4:
#
pkg install
apache24
For more information on packages refer to section 5.4 of the FreeBSD Handbook: Using pkgng for Binary Package Management.
The FreeBSD Ports Collection is a framework of
Makefiles
and patches specifically
customized for installing applications from source on FreeBSD.
When installing a port, the system will fetch the source code,
apply any required patches, compile the code, and install the
application and any required dependencies.
The Ports Collection, sometimes referred to as the ports
tree, can be installed to /usr/ports
using portsnap(8). Detailed instructions for installing
the Ports Collection can be found in section
5.5 of the FreeBSD Handbook.
To compile a port, change to the port's directory and start the build process. The following example installs Apache 2.4 from the Ports Collection:
#
cd /usr/ports/www/apache24
#
make install clean
A benefit of using ports to install software is the ability to customize the installation options. This example specifies that the mod_ldap module should also be installed:
#
cd /usr/ports/www/apache24
#
make WITH_LDAP="YES" install clean
Refer to Using the Ports Collection for more information.
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 <[email protected]>.
Send questions about this document to <[email protected]>.