You can use the pkg_add(1) utility to install a FreeBSD software package from a local file or from a server on the network.
Example 4-1. Downloading a Package and then Installing It Locally
# ftp -a ftp2.freebsd.org Connected to ftp2.freebsd.org. 220 ftp2.freebsd.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail firstname.lastname@example.org. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit # pkg_add lsof-4.56.4.tgz
If you do not have a source of local packages (such as a FreeBSD CDROM set) then it will probably be easier to use the -r option to pkg_add(1). This will cause the utility to automatically determine the correct object format and release and then to fetch and install the package from an FTP site.
# pkg_add -r lsof-4.56.4
The example above would download the correct package and add it without any further user intervention.
Package files are distributed in .tgz format. You can find them at ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, or on the FreeBSD CDROM distribution. Every CD on the FreeBSD 4-CD set (and PowerPak, etc) contains packages in the /packages directory. The layout of the packages is similar to that of the /usr/ports tree. Each category has its own directory, and every package can be found within the All directory.
The directory structure of the package system is identical to that of the ports; they work with each other to form the entire package/port system.
To remove a previously installed software package, use the pkg_delete(1) utility.
# pkg_delete xchat-1.7.1
pkg_info(1) is a utility that lists and describes the various packages installed.
# pkg_info cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ...
pkg_version(1) is a utility that summarizes the versions of all installed packages. It compares the package version to the current version found in the ports tree.
# pkg_version cvsup = docbook = ...
The symbols in the second column indicate the relative age of the installed version and the version available in the local ports tree.
|=||The version of the installed package matches that of the one found in the local ports tree.|
|<||The installed version is older then the one available in the ports tree.|
|>||The installed version is newer than the one found in the local ports tree. (local ports tree is probably out of date)|
|?||The installed package cannot be found in the ports index.|
|*||There are multiple versions of the package.|
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.
This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
For questions about FreeBSD, read the
before contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.