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 search
name=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 search
name=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 search
name=pear- xname='ht(tp|ml)'
To find all ports whose names contain
``pear-'', but
not ``html'' or ``http''.

make search key=apache dis
play=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
Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout