4.4. Usando el Sistema de Paquetes

Contribuido porChern Lee.

4.4.1. Instalando un Paquete

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.

4.4.2. Eliminando un Paquete

Para eliminar un paquete previemante instalado, utilice la utilidad pkg_delete(1).

    # pkg_delete xchat-1.7.1

4.4.3. Manejo de Paquetes

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.

4.4.4. Miscelaneos

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.