[OpenBSD]

La Colección de Portes y Paquetes

Motivaciones

OpenBSD es un sistema bastante completo por sí solo, pero hay grandes cantidades de software que a algunos usuarios les gustaría ver añadido. Sin embargo existe un dilema sobre hasta dónde llega el límite de lo que se puede incluir, así como problemas ocasionales con las licencias y las restricciones a la exportación. Partiendo de la base de que OpenBSD es un sistema operativo de tipo Unix, hay algunas cosas que no se pueden incluir en la distribución del sistema.

La colección de portes y paquetes NO recibe la misma auditoría de seguridad que sigue OpenBSD. Aunque nos esforzamos en mantener la gran calidad de la colección de paquetes, no disponemos de los suficientes recursos humanos como para poder asegurar el mismo nivel de estabilidad y fiabilidad.

La colección de portes, que al principio se tomó de la colección de FreeBSD, rellena este vacío. El concepto es el de disponer, para cada software proveniente de terceras partes, un fichero Makefile que controle

Esta información se mantiene en una jerarquía de directorios bajo el directorio /usr/ports.

Los paquetes son los equivalentes binarios de los portes. Un porte compilado se convierte en un paquete que se puede registrar en el sistema usando pkg_add(1).

Los paquetes parecen simples archivos .tgz, pero se deben añadir siempre usando pkg_add(1), ya que puede haber información adicional que sólo pkg_add(1) sabe cómo gestionar. Una pista: puede distinguir entre los paquetes y los archivos .tgz usando pkg_info(1).

Cómo Obtener los Paquetes

Existe una gran colección de paquetes precompilados disponibles para las arquitecturas más comunes.

Añadir un paquete es tan sencillo como hacer pkg_add pkgname.tgz. Si va a obtener los paquetes de una única fuente (un repositorio de paquetes), configure PKG_PATH para que señale la URL de ese repositorio para obtener las dependencias.

Por ejemplo, para instalar el paquete gimp para la versión 2.8 en una máquina i386 desde el sitio de ftp (incluyendo las dependencias), haga lo siguiente:

    # setenv PKG_PATH ftp://ftp.openbsd.org/pub/OpenBSD/2.8/packages/i386/
    # pkg_add ${PKG_PATH}gimp-1.1.27.tgz

Actualización de portes y paquetes con la versión oficial de OpenBSD

Con la versión 2.7 se introdujo la rama -stable al árbol de portes.

Por ejemplo, para bajarse la rama -stable para la versión 2.8 haríamos lo siguiente:

    $ cd /usr/ports
    $ cvs -q -d anoncvs@some.anon.server:/cvs up -r OPENBSD_2_8 -Pd

A partir de la versión 2.8, también se encuentran disponible una selección de paquetes binarios. Gracias a Christian Weisgerber por encargarse de la dura tarea de coordinar los camios en la rama stable. Por favor, la la página de los paquetes estables para saber qué paquetes son importantes y cuáles han sido actualizados en la rama stable.

A fin de evitar cualquier riesgo de confusión entre un paquete de la versión oficial y un mismo paquete con algún error solucionado, los nombres de los paquetes siempre cambian cuando el paquete ha sido actualizado.

Gestión de paquetes instalados

La página de manual de packages(7) contiene información de utilidad sobre las forma de gestionar paquetes instalados, resolver conflictos (ficheros que ya existan) y gestionar las dependencias.

A partir de OpenBSD 2.8, para actualizar un paquete debe:

Esto no es muy conveniente, ya que los paquetes podrían accionar las dependencias, y entonces tendría que eliminar un subgrupo de paquetes grande para una actualización.

Cómo usar los portes

Si un paquete dado no existe para su arquitectura, aún es posible compilar el porte. Además, algunos usuarios querrán compilarlo todo desde el código fuente por varios motivos.

Puede bajarse por ftp la versión oficial correspondiente desde el directorio pub/OpenBSD/[versión] (en donde [versión] es el número de la versión) de cualquiera de las réplicas de ftp. Las versiones oficiales ("releases") son las que vienen en el CDROM, y han pasado más pruebas que cualquier versión de prueba ("snapshots"). Puede encontrar más información al respecto en la página de manual de ports(7).

Ciclo de vida del árbol de portes

El árbol de portes, como el resto del árbol de OpenBSD, está cambiando constantemente. El ciclo de vida normal del árbol de portes es de este modo:

El cambio de estado se publicará en las listas de correo.

El árbol actual de los portes no puede ser usado con la versión anterior una vez que el cambio para el seguimiento de OpenBSD-current tenga lugar. Esto se debe a cambios, sobre todo en el proceso de compilación de los portes, que requieren de código basado en el árbol de fuentes de OpenBSD-current.

El árbol de portes funciona como una entidad única. Actualizar un solo directorio no garantiza que vaya a funcionar, ya que las dependencias de un paquete puede forzarle a actualizar y recompilar una amplia parte del árbol de portes. Se recomienda que los usuarios no sigan los portes de current a menos que estén preparados para los consiguientes problemas. Por ejemplo, algunas versiones del paquete de portes podría haber dejado de estar disponible. Por tanto, tendría que obtener y usar una versión más nueva del árbol de portes. Nótese que el árbol de ports-current se comprueba con el de OpenBSD-current, y NO está garantizado que funcione con la versión estable anterior. Se recomienda encarecidamente a los usuarios que no hagan seguimientos de ports-current a menos que estén dispuestos a hacer un seguimiento completo de OpenBSD-current, incluidos los fuentes. Las listas de correo como la de source-changes@openbsd.org o tech@openbsd.org serán probablemente de gran ayuda.

El árbol ports-current se puede obtener por medio de:

Portes y XFree

Hay algo de magia en los ficheros de configuración de XFree para OpenBSD que permite que el árbol de portes instale en /usr/local aplicaciones basadas en imake.

En la actualidad OpenBSD no incluye XFree 4.0.x para varios motivos. La magia de estos portes no funciona con la distribución XFree 4.0.x (todavía). Para que XFree 4.0.x funcione con el árbol de portes de OpenBSD, debe aplicar el parche /usr/ports/infrastructure/patches/patch-xfree-4.0 a la distribución binaria de XFree 4.0.x.

Las futuras versiones de XFree 4.0.x probablemente incluirán la magia necesaria.

Ejemplo del uso del árbol de Portes

Suponiendo que hubiera conseguido obtener un árbol de portes y que quisiera compilar e instalar la herramienta de descompresión de archivos unzip, podría hacer algo parecido a esto:

    % cd /usr/ports/archivers/unzip
    % su
    # make
    # make install
    # exit
Fácil, ¿no es cierto? Especialmente si consideramos todo lo que ha ocurrido en un plano de fondo:

Con OpenBSD 2.8, casi todos los portes compilarán paquetes de forma automática cuando se instalen.

Según se van compilando portes, el directorio /usr/ports/distfiles se va llenando con fuentes de programas, y /usr/ports/packages se va llenando con paquetes de binarios. Los usuarios con mala conexión pueden ver en la página de manual de mirror-distfiles(7) una buena referencia sobre un modo eficiente de bajarse todos los distfiles de una vez. En OpenBSD-current, puede usar el guión /usr/ports/infrastructure/fetch/clean-old para llevar un seguimiento de los viejos programas en distfiles. Note que el CD de OpenBSD sólo incluye el árbol de fuentes y los paquetes seleccionados. Si quiere tener los fuentes de los programas en distfiles, tendrá que obtenerlos por un medio distinto.

Crear nuevos portes

Si está interesado en ayudar a expandir el árbol de portes de OpenBSD, antes que nada debería leer porting.html. Esa página hace referencia a la sección de portes del FreeBSD handbook así como a la política de OpenBSD al respecto y algunas pistas que le servirán de ayuda.

Problemas y Dirección de Contacto

Si tiene algún problema con los portes, o si necesita información sobre cómo crear nuevos portes, por favor envíe un mensaje a la lista de correo sobre portes de OpenBSD ports@openbsd.org. Las correcciones siempre se agradecen pero en cualquier caso, por favor incluya:

Para aquellos portes que no compilen correctamente, casi siempre se requiere una transcripción completa del proceso de compilación e instalación. Algunos portes pueden tener problemas de configuración relacionados con otras instalaciones en su máquina.
OpenBSD www@openbsd.org
Originally [OpenBSD: ports.html,v 1.46 2000/12/18 03:21:41 espie Exp ]
$Translation: ports.html,v 1.16 2000/12/19 17:40:35 horacio Exp $
$OpenBSD: ports.html,v 1.17 2000/12/23 11:04:40 jufi Exp $