- FreeBSD Ports
The
FreeBSD Ports collection is apackage management system which provides an easy and consistent way of installing software packages on the FreeBSDoperating system . As of the 22ndAugust 2008 there are over 19,000 ports [cite web
url=http://www.freebsd.org/ports/
title=About FreeBSD Ports
accessdate=2008-08-10] available in the collection.Installing from source
The ports system uses
Makefile s laid out in a directory hierarchy so 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 theInternet , 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 can sometimes be changed with the make config command before installation.
Each port (or software package) is maintained by an individual person called a "port maintainer" who is responsible for staying current with the latest software developments. Anyone is welcome to become a port maintainer by contributing their favorite piece of software to the collection. One may also choose to adopt and maintain an existing port if it currently has no maintainer.
Packages
Precompiled (binary) ports are called "packages", which are available for download. A user can easily and automatically install a package by passing the package name to the pkg_add -r command. This downloads the appropriate package for the user's release version of FreeBSD, then installs the application along with any software dependencies it may have. By default, this command downloads packages from the main FreeBSD distribution site.
FreeBSD maintains a build farm called the "pointyhat cluster" in which all packages for all architectures and major releases are built. The build logs and known errors for all ports built into packages through the pointyhat cluster are available in a [http://pointyhat.freebsd.org/errorlogs/ database] .
These precompiled packages are separated into categories by the architectures for which they are available. Packages are further separated into several "release" directories, one for each current "production release" built from the ports collection and shipped with the release. These production release directories are never updated.
There are also "stable" and "current" directories for several major release branches. These are updated more or less weekly. In most cases a package created for an older version of FreeBSD can be installed and used on a newer system without difficulty since binary backward compatibility across major releases is enabled by default.
History
Jordan Hubbard [http://www.freebsd.org/cgi/cvsweb.cgi/ports/Mk/bsd.port.mk committed] his "port make macros" to the FreeBSD CVS repository onAugust 21 ,1994 . His package install suite [http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.sbin/pkg_install/Makefile had been committed] a year earlier (August 26 ,1993 ). The core ports framework was at first maintained by Hubbard along with Satoshi Asami for several years. The [http://www.freebsd.org/portmgr/ Ports Management Team] was later formed to handle this task.External links
* [http://www.freebsd.org/ports/index.html Official FreeBSD Ports Page]
* [http://www.FreshPorts.org/ FreshPorts] - Popular website (maintained by Dan Langille) with a focus on tracking port updates.
* [http://www.tobez.org/port-tags/ Port-Tags] - Project to add tags to the ports collection
* [http://www.freebsdsoftware.org FreeBSD Software] - Very old FreeBSD software website
* [http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports.html Installing Applications: Packages and Ports] from theFreeBSD Handbook (Chapter 4)References
Wikimedia Foundation. 2010.