FreeBSD's list of available applications is growing all the time. There are a number of ways to find software to install:
The FreeBSD web site maintains an up-to-date searchable list of all the available applications, at https://www.FreeBSD.org/ports/. The ports can be searched by application name or by software category.
Dan Langille maintains FreshPorts.org which provides a comprehensive search utility and also tracks changes to the applications in the Ports Collection. Registered users can create a customized watch list in order to receive an automated email when their watched ports are updated.
If finding a particular application becomes challenging, try searching a site like SourceForge.net or GitHub.com then check back at the FreeBSD site to see if the application has been ported.
To search the binary package repository for an application:
#
pkg search
git-subversion-subversion
1.9.2
java-subversion-1.8.8_2
p5-subversion-1.8.8_2
py27-hgsubversion-1.6
py27-subversion-1.8.8_2
ruby-subversion-1.8.8_2
subversion-1.8.8_2
subversion-book-4515
subversion-static-1.8.8_2
subversion16-1.6.23_4
subversion17-1.7.16_2
Package names include the version number and, in the
case of ports based on python, the version number of the
version of python the package was built with. Some ports
also have multiple versions available. In the case of
Subversion, there are different
versions available, as well as different compile options.
In this case, the statically linked version of
Subversion. When indicating
which package to install, it is best to specify the
application by the port origin, which is the path in the
ports tree. Repeat the pkg search
with
-o
to list the origin of each
package:
#
pkg search -o
devel/git-subversion java/java-subversion devel/p5-subversion devel/py-hgsubversion devel/py-subversion devel/ruby-subversion devel/subversion16 devel/subversion17 devel/subversion devel/subversion-book devel/subversion-staticsubversion
Searching by shell globs, regular expressions, exact
match, by description, or any other field in the repository
database is also supported by pkg search
.
After installing ports-mgmt/pkg or
ports-mgmt/pkg-devel, see
pkg-search(8) for more details.
If the Ports Collection is already installed, there are
several methods to query the local version of the ports
tree. To find out which category a port is in, type
whereis
,
where file
file
is the program to be
installed:
#
whereis lsof
lsof: /usr/ports/sysutils/lsof
Alternately, an echo(1) statement can be used:
#
echo /usr/ports/*/*lsof*
/usr/ports/sysutils/lsof
Note that this will also return any matched files
downloaded into the
/usr/ports/distfiles
directory.
Another way to find software is by using the Ports
Collection's built-in search mechanism. To use the search
feature, cd to
/usr/ports
then run make
search name=program-name
where
program-name
is the name of the
software. For example, to search for
lsof
:
#
cd /usr/ports
#
make search name=lsof
Port: lsof-4.88.d,8 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: ler@lerctr.org Index: sysutils B-deps: R-deps:
The built-in search mechanism uses a file
of index information. If a message indicates that the
INDEX
is required, run
make fetchindex
to download the current
index file. With the INDEX
present,
make search
will be able to perform the
requested search.
The “Path:” line indicates where to find the port.
To receive less information, use the
quicksearch
feature:
#
cd /usr/ports
#
make quicksearch name=lsof
Port: lsof-4.88.d,8 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1))
For more in-depth searching, use
make search
key=
or
string
make quicksearch
key=
, where
string
string
is some text to search
for. The text can be in comments, descriptions, or
dependencies in order to find ports which relate to a
particular subject when the name of the program is
unknown.
When using search
or
quicksearch
, the search string
is case-insensitive. Searching for “LSOF” will
yield the same results as searching for
“lsof”.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.