Make your own free website on
Packages and Ports

Kudos to Jordan Hubbard

Adding new software in FreeBSD is very easy.  You have two options, packages or ports.  Both packages and ports understand dependenices and will install the appropreate dependenices before the specified application.  Packages are the binary form of applications and ports are the source code form of applications.  The Ports collection does not contain the source code but a collection of files which automates the download, compile, and installation of the source code for over 7000 applications.

For packages and ports check:


Packages come in tar.gz format.  They are usually located under /packages on the cdrom or from  You can also get them using the "pkg_add -r" command explained later on this page.


Installing a package

Local - the package is on the local host
    # pkg_add pkgname-verson.tgz

Remote - the package is not on the local host
    # pkg_add -r pkgname

Removing a package
    # pkg_delete pkgname-version

List packages install (shows versions)
    # pkg_info

Compare version of package installed with current version available in the local ports.
    # pkg_version
                   =    same
                   <    installed version older
                   >    installed version newer
                   ?    installed not found in ports index
                   *    multiple version

All package information is stored within the /var/db/pkg directory. The installed file list and descriptions of each package can be found within files in this directory.


Choose to install the ports collection during installation, if not you can install from /stand/sysinstall or cvsup (Handbook A.6.2)

A port skeleton is a minimal set of files that tell your FreeBSD system how to cleanly compile and install a program. Each port skeleton includes:

Makefile            - How it should be compiled & where to install
distinfo              - list of files to download and check sum
files(dir)            - patches and other support files
pkg-comment    - one line discription
pkg-descr           - multi line discription
pkg-plist            - list of files installed/ to be removed
pkg-message      - special situations

Finding the port to install

    # whereis pname

    # cd /usr/ports
    # make search name=pname

    # cd /usr/ports
    # make search key=string
        where "string" is the text to look for.
        case is insenitive

List of ports

Installing a port

    # cd /usr/ports/collection/port
    # make install

Removing a port

    # cd /usr/ports/collection/port
    # make deinstall

    If you used "clean" then you must remove the port with pkg_delete

The downloaded tarballs are stored in /usr/ports/distfiles.  You can delete them manually or use "make distclean".  To delete the source code "make clean" from /usr/ports/collection/pkg.

List files before downloading
    # make fetch-list

Only download files
    # make fetch

Download and extract files
    # make extract

Download, extract, and patch files
    # make patch

Post installation

Read any documentation
Edit any configuration files
Does it start at boot up and all that implies.

Example:  just installed foobar

1. Get full name of pkg.
    # pkg_info |grep foobar
    # ls /var/db/pkg |grep foobar
    # pkg_info -I 'foobar*'

all return foobar-0.9.6

2.  What files did it install?  Look for man doc etc.
    # pkg_info -L foobar-0.9.6 | less

3.  Additional info
    # pkg_info foobar-0.9.6

good idea to know how the package/application works (in terms of configuration) before you install.

Next Setting up X