ports(7)
NAME
ports - contributed applications
DESCRIPTION
- The FreeBSD Ports Collection offers a simple way for users
- and administrators to install applications. Each port contains any
- patches necessary to make the original application source code compile
- and run on BSD.
Compiling an application is as simple as typing make build - in the port
directory! The Makefile automatically fetches the applica - tion source
code, either from a local disk or via FTP, unpacks it on - your system,
applies the patches, and compiles it. If all goes well, - simply type make
install to install the application. - It is possible to download and use ports from the FreeBSD
- repository that
are newer than the installed system; however it is important - to install
the appropriate ``Upgrade Kit'' from - http://www.FreeBSD.org/ports/ first! The portcheckout(1) (ports/devel/portcheckout) script (also
- a port, of
course!) will help to download new ports. - For more information about using ports, see ``Packages and
- Ports'' in The
FreeBSD Handbook,
(file:/usr/share/doc/en_US.ISO8859-1/books/handbook/ports.html - or
http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/ports.html). For information about creating new ports, see The Porter's - Handbook
(file:/usr/share/doc/en_US.ISO8859-1/books/porters-handbook/index.html - or
http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/).
TARGETS
- Some of the targets work recursively through subdirectories.
- This lets
you, for example, install all of the ``biology'' ports. The - targets that
do this are build, checksum, clean, configure, depends, - extract, fetch,
install, and package. - The following targets will be run automatically by each pro
- ceeding target
in order. That is, build will be run (if necessary) by - install, and so
on all the way to fetch. Usually, you will only use the - install target.
- config Configure OPTIONS for this port using dia
- log(1).
- config-recursive
- Configure OPTIONS for this port and all its
- dependencies
using dialog(1). - fetch Fetch all of the files needed to build this
- port from the
- sites listed in MASTER_SITES and PATCH_SITES.
- See
FETCH_CMD, MASTER_SITE_OVERRIDE and - MASTER_SITE_BACKUP.
- checksum Verify that the fetched distfile's checksum
- matches the
- one the port was tested against. Defining
- NO_CHECKSUM
will skip this step. - depends Install (or compile if only compilation is
- necessary) any
- dependencies of the current port. When
- called by the
extract or fetch targets, this is run in - piecemeal as
fetch-depends, build-depends, etc. Defining - NO_DEPENDS
will skip this step. - extract Expand the distfile into a work directory.
- patch Apply any patches that are necessary for the
- port.
- configure Configure the port. Some ports will ask you
- questions
- during this stage. See INTERACTIVE and
- BATCH.
- build Build the port. This is the same as calling
- the all tar
- get.
- install Install the port and register it with the
- package system.
- This is all you really need to do.
- The following targets are not run during the normal install
- process.
- showconfig Display OPTIONS config for this port.
- showconfig-recursive
- Display OPTIONS config for this port
- and all its
dependencies. - rmconfig Remove OPTIONS config for this port.
- rmconfig-recursive Remove OPTIONS config for this port and
- all its
- dependencies.
- config-conditional Skip the ports which have already had
- their OPTIONS
- configured.
- fetch-list Show list of files to be fetched in or
- der to build
- the port.
- fetch-recursive Fetch the distfiles of the port and all
- its depen
- dencies.
- fetch-recursive-list
- Show list of files that would be re
- trieved by
fetch-recursive. - pretty-print-run-depends-list,
- pretty-print-build-depends-list
- Print a list of all the compile and run
- dependencies, and dependencies of those depen
- dencies.
- clean Remove the expanded source code. This
- recurses to
- dependencies unless NOCLEANDEPENDS is
- defined.
- distclean Remove the port's distfiles and perform
- the clean
- target. The clean portion recurses to
- dependencies
unless NOCLEANDEPENDS is defined, but - the distclean
portion never recurses (this is perhaps - a bug).
- reinstall Use this to restore a port after using
- pkg_delete(1)
- when you should have used deinstall.
- deinstall Remove an installed port from the sys
- tem, similar to
- pkg_delete(1).
- deinstall-all Remove all installed ports with the
- same PKGORIGIN
- from the system.
- package Make a binary package for the port.
- The port will
- be installed if it has not already
- been. The package is a .tbz file that you can use to
- install the
port on other machines with pkg_add(1). - If the
directory specified by PACKAGES does - not exist, the
package will be put into the current - directory. See
PKGREPOSITORY and PKGFILE. - package-recursive Like package, but makes a package for
- each depending
- port as well.
- readmes Create a port's README.html. This can
- be used from
- /usr/ports to create a browsable web of
- all ports on
your system! - search Search the INDEX file for the pattern
- specified by
- the key (searches the port name, com
- ment, and dependencies), name (searches the port name
- only), path
(searches the port path), info (search - es the port
info), maint (searches the port main - tainer), cat
(searches the port category), bdeps - (searches the
port build-time dependency), rdeps - (searches the
port run-time dependency) make(1) vari - ables, and
their exclusion counterparts: xname, - xkey etc. For
example, one would type:
cd /usr/ports && make searchname=query - to find all ports whose name matches
- ``query''.
Results include the matching ports' - path, comment,
maintainer, build dependencies, and run - dependencies.
cd /usr/ports && make searchname=pear- xbdeps=apache - To find all ports whose names contain
- ``pear-'' and
which do not have apache listed in - build-time dependencies.
cd /usr/ports && make searchname=pear- xname='ht(tp|ml)' - To find all ports whose names contain
- ``pear-'', but
not ``html'' or ``http''.
make search key=apache display=name,path,info keylim=1 - To find ports that contain ``apache''
- in either of
the name, path, info fields, ignore the - rest of the
record. - describe Generate a one-line description of each
- port for use
- in the INDEX file.
- index Create /usr/ports/INDEX, which is used
- by the
- pretty-print-* and search targets.
- Running the
index target will ensure your INDEX - file is up to
date with your ports tree. - fetchindex Fetch the INDEX file from the FreeBSD
- cluster.
ENVIRONMENT
You can change all of these.
- PORTSDIR Location of the ports tree. This is
- /usr/ports on
- FreeBSD and OpenBSD, and /usr/pkgsrc on
- NetBSD.
- WRKDIRPREFIX Where to create any temporary files. Use
- ful if
- PORTSDIR is read-only (perhaps mounted
- from a CD-ROM).
- DISTDIR Where to find/put distfiles, normally
- distfiles/ in
- PORTSDIR.
- PACKAGES Used only for the package target; the base
- directory
- for the packages tree, normally packages/
- in PORTSDIR.
If this directory exists, the package tree - will be
(partially) constructed. This directory - does not have
to exist; if it does not, packages will be - placed into
the current directory, or you can define - one of
- PKGREPOSITORY Directory to put the
- package in.
- PKGFILE The full path to the
- package.
- PREFIX Where to install things in general (usual
- ly /usr/local
- or /usr/X11R6).
- MASTER_SITES Primary sites for distribution files if
- not found
- locally.
- PATCH_SITES Primary locations for distribution patch
- files if not
- found locally.
- MASTER_SITE_FREEBSD
- If set, go to the master FreeBSD site for
- all files.
- MASTER_SITE_OVERRIDE
- Try going to these sites for all files and
- patches,
first. - MASTER_SITE_BACKUP
- Try going to these sites for all files and
- patches,
last. - MASTER_SITE_INDEX
- Where to get INDEX source built on FreeBSD
- cluster (for
fetchindex target). Defaults to
http://www.FreeBSD.org/ports/. - FETCHINDEX Command to get INDEX (for fetchindex tar
- get). Defaults
- to ``fetch -am''.
- NOCLEANDEPENDS If defined, do not let clean recurse to
- dependencies.
- FETCH_CMD Command to use to fetch files. Normally
- fetch(1).
- FORCE_PKG_REGISTER
- If set, overwrite any existing package
- registration on
the system. - MOTIFLIB Location of libXm.{a,so}.
- INTERACTIVE If defined, only operate on a port if it
- requires
- interaction.
- BATCH If defined, only operate on a port if it
- can be
- installed 100% automatically.
- OPTIONS If defined, list of what WITH_* options
- this port
- accepts. Note: to make OPTIONS actually
- work, it is
necessary to include bsd.port.pre.mk be - fore starting to
test the WITH_* variables. - DISABLE_VULNERABILITIES
- If defined, disable check for security
- vulnerabilities
using portaudit(1) - (ports/security/portaudit) when installing new ports.
FILES
- /usr/ports The default ports directory
- (FreeBSD and
- OpenBSD).
- /usr/pkgsrc The default ports directory
- (NetBSD).
/usr/ports/Mk/bsd.port.mk The big Kahuna.
SEE ALSO
- make(1), pkg_add(1), pkg_create(1), pkg_delete(1), pkg_in
- fo(1),
pkg_version(1) - The following are part of the ports collection:
- pib(1), portaudit(1), portcheckout(1), portlint(1)
- The FreeBSD Handbook.
- http://www.FreeBSD.org/ports (searchable index of all ports)
HISTORY
- The Ports Collection appeared in FreeBSD 1.0. It has since
- spread to
NetBSD and OpenBSD.
AUTHORS
This manual page was originated by David O'Brien.
BUGS
- Ports documentation is split over four places -/usr/ports/Mk/bsd.port.mk, The Porter's Handbook, the
- ``Packages and
Ports'' chapter of The FreeBSD Handbook, and this manual - page.
- BSD February 8, 2005