Refer to the ports
page for info on software packages ported to
FreeBSD. The list currently tops 24,000 and is
growing daily, so come back to check often or subscribe to
the FreeBSD announcements mailing list for periodic updates on new
entries.

Most ports should work on all supported versions of
FreeBSD. Those that do not are specifically marked as such.
Each time a FreeBSD release is made, a snapshot of the ports
tree at the time of release in also included in the
ports/ directory.

FreeBSD supports compressed binary packages to easily
install and uninstall ports. Use pkg(7) to control
the installation of packages.

Why can I not build this port on my
11.XÂ -, or
12.XÂ -STABLE machine?

If the installed FreeBSD version lags significantly
behind -CURRENT or
-STABLE, update the Ports Collection
using the instructions in Using
the Ports Collection. If the system is
up-to-date, someone might have committed a change to the
port which works for -CURRENT but
which broke the port for -STABLE.
Submit
a bug report, since the Ports Collection is supposed to
work for both the -CURRENT and
-STABLE branches.

6.5.

I just tried to build INDEX using
make index, and it failed. Why?

First, make sure that the Ports Collection is
up-to-date. Errors that affect building
INDEX from an up-to-date copy of the
Ports Collection are high-visibility and are thus almost
always fixed immediately.

There are rare cases where INDEX
will not build due to odd cases involving
OPTIONS_SET
being set in make.conf. If
you suspect that this is the case, try to make
INDEX with those variables
turned off before reporting it to FreeBSD ports mailing list.

6.6.

I updated the sources, now how do I update my
installed ports?

FreeBSD does not include a port upgrading tool, but it
does have some tools to make the upgrade process somewhat
easier. Additional tools are available to simplify
port handling and are described the Upgrading
Ports section in the FreeBSD Handbook.

6.7.

Do I need to recompile every port each time I perform
a major version update?

Yes! While a recent system will run with
software compiled under an older release,
things will randomly crash and fail to work once
other ports are installed or updated.

When the system is upgraded, various shared libraries,
loadable modules, and other parts of the system will be
replaced with newer versions. Applications linked against
the older versions may fail to start or, in other cases,
fail to function properly.

Do I need to recompile every port each time I perform
a minor version update?

In general, no. FreeBSD developers do their utmost to
guarantee binary compatibility across all releases with
the same major version number. Any exceptions will be
documented in the Release Notes, and advice given there
should be followed.

6.9.

Why is /bin/sh so minimal? Why
does FreeBSD not use bash or another
shell?

Many people need to write shell scripts which will be
portable across many systems. That is why POSIXÂ®
specifies the shell and utility commands in great detail.
Most scripts are written in Bourne shell (sh(1)), and
because several important programming interfaces
(make(1), system(3), popen(3), and
analogues in higher-level scripting languages like Perl
and Tcl) are specified to use the Bourne shell to
interpret commands. Because the Bourne shell is so often
and widely used, it is important for it to be quick to
start, be deterministic in its behavior, and have a small
memory footprint.

The existing implementation is our best effort at
meeting as many of these requirements simultaneously as we
can. To keep /bin/sh small, we have
not provided many of the convenience features that other
shells have. That is why other more featureful shells
like bash, scsh,
tcsh(1), and zsh are available.
Compare the memory utilization of
these shells by looking at the “VSZ” and
“RSS” columns in a ps -u
listing.

6.10.

How do I create audio CDs from my MIDI files?

To create audio CDs from MIDI files, first install
audio/timidity++ from ports then
install manually the GUS patches set by Eric A. Welsh,
available at http://alleg.sourceforge.net/digmid.html.
After TiMidity++ has been
installed properly, MIDI files may be converted to WAV
files with the following command line:

%timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.mid

The WAV files can then be converted to other formats
or burned onto audio CDs, as described in the FreeBSD
Handbook.