Puede usar la utilidad pkg_add(1) para instalar software de un paquete bajo FreeBSD, desde un fichero local o desde un servidor remoto que esta en red.
Ejemplo 4-1. Descargando un Paquete e Instalandolo Localmente
# 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 freebsd@vienna.verio.net.
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
Si usted no cuenta con una fuente local de paquetes (como pudiese ser un CDROM de FreeBSD), pudiese ser que su mejor alternativa sea usar pkg_add(1). Esto provocará que la utilidad determine automáticamente el formato del objeto correcto, para que posteriormente lo descargue y lo instale desde un sitio FTP.
# pkg_add -r lsof
En el ejemplo anterior, el paquete correspondiente será descargado e instalado sin mayor intervención del usuario. pkg_add(1) utiliza pkg_add(1) para descargar los ficheros, que toma como referencia varias variables de entorno, que incluyen FTP_PASSIVE_MODE, FTP_PROXY y FTP_PASSWORD. Quizás deba modificar alguna de estas, si se encuentra detrás de un firewall, o bien usar un proxy FTP/HTTP. Vea la página de ayuda fetch(3) para una lista completa. También puede notar que en el ejemplo anterior usamos lsof en vez de lsof-4.56.4. Cuando hacemos uso de "fetch" de forma remota, la versión del paquete debe ser removida. El programa pkg_add(1) obtendrá automáticamente la versión más reciente.
Los paquetes son distribuidos en formato .tgz. puede encontrarlos en ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, o bien, en el CDROM de FreeBSD. Cada CD de la distribución de 4 CDs (y del PowerPak, etc) contiene los paquetes en el directorio /packages. El orden de dicho directorio, es similar al árbol de /usr/ports. Cada categoría cuenta con su subdirectorio, y todos los paquetes estan disponibles en el directorio All.
La estructura del directorio de paquetes es identica a la de ports; estos trabajan en conjunto para formar el sistema de paquetes/ports.
Para eliminar un paquete previemante instalado, utilice la utilidad pkg_delete(1).
# pkg_delete xchat-1.7.1
pkg_info(1) es una utilidad que muestra y describe todos los paquetes que tenemos instalados.
# 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) es una utilidad que resume las versiones de los paquetes instalados. Estas son comparadas con las versiones actuales del árbol de ports.
# pkg_version
cvsup =
docbook =
...
Los símbolos de la segunda columna, nos indican la edad relativa de la versión instalada, comparada con la versión disponible en el árbol local de ports.
| Símbolo | Significado |
|---|---|
| = | La versión del paquete instalado es igual a la versión del árbol local de ports. |
| < | La versión instalada es más antigua a la versión del árbol local de ports. |
| > | La versión instalada es más reciente que la que se encuentra en el árbol local de ports (probablemente el árbol de ports esta desactualizado). |
| ? | El paquete instalado no se ha localizado en el índice (index) de los ports. |
| * | Existen multiples versiones del paquete. |
Toda la información relacionada con los paquetes, se guarda en el directorio /var/db/pkg. Los paquetes instalados, así como una descripción de los mismos, puede encontrarse en este subdirectorio.