[OpenBSD]

La Colección de portes y paquetes


Índice


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 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 desde 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 3.5 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/3.5/packages/i386/
    # pkg_add ${PKG_PATH}gimp-1.2.5.tgz

Actualización de portes y paquetes para una versión final de OpenBSD

A partir de la versión final 2.7 (-release) se introdujo la rama de parches o versión parcheada (-stable) al árbol de portes.

Por ejemplo, para bajarse la versión parchada de la versión 3.5 haríamos lo siguiente:

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

A partir de la versión 2.8, también se introdujo una selección de paquetes binarios. Por favor, la la página sobre los paquetes estables para conocer qué paquetes son importantes y cuáles han sido actualizados en la versión parchada. Si desea recibir anuncios de seguridad, puede subscribirse a la lista de correo ports-security.

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 del manual de packages(7) contiene información de utilidad sobre las forma de administrar 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 final (-release) correspondiente desde el directorio pub/OpenBSD/[versión] (en donde [versión] es el número de la versión correspondiente) de cualquiera de las réplicas de ftp. Las versiones finales son las que vienen en el CDROM, y han pasado más pruebas que cualquier versión preliminar (snapshot). 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 árbol de desarrollo de los portes (ports-current), no puede ser utilizado con la versión anterior. Esto se debe a causa de cambios, sobre todo de cambios en el proceso de compilación e instalación de los portes que requieren código basado en el árbol de desarrollo del sistema (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 ports-changes@openbsd.org o tech@openbsd.org serán probablemente de gran ayuda.

Se recomienda que se utilicen ports-stable en una máquina funcional; intentaremos mantener el árbol de ports-stable en condiciones con respecto a los problemas, así como lanzar actualizaciones binarias periódicamente.

Nótese que los archivos de distribución que se borren no representan ningún problema, ya que ftp.openbsd.org contiene el repositorio completo. Aun en el caso en que cambien las sumas de distribución se puede ejecutar la orden

	make checksum REFETCH=true 

para asegurarse de que se esté bajando el archivo de distribución correcto para su árbol de portes. Puede ver las definiciones de -current y -stable en las preguntas frecuentes sobre actualización.

También se encuentra disponible un listado de cambios diarios en los árboles de ports y ports-current.

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

Los portes y XFree86

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

Desde la versión 2.9, OpenBSD incluye XFree86 4.0.3. Si está usando una versión anterior junto con los binarios para XFree86 del proyecto XFree86, es probable que tenga que aplicar el parche /usr/ports/infrastructure/patches/patch-xfree-4.0 a la distribución binaria de XFree86 4.0.x.

Ejemplo de utilización 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 así? Especialmente si consideramos todo lo que ha ocurrido en un plano de fondo:

Con OpenBSD 3.0, 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 del manual de mirroring-ports(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.

Uso avanzado del árbol de portes

El árbol de portes tiene muchas funcionalidades para el usuario avanzado que lo convierten en una herramienta que va más allá de la simple instalación. Los usuarios avanzados es posible que quieran cambiar los ficheros makefile (antes deberían leer la página del manual de make(1)), o configurar varias variables para la línea de órdenes de make o en /etc/mk.conf. Estas variables se describen con todo lujo de detalles en la página de manual de bsd.port.mk(5) y en los documentos sobre portes que siguen.

Cómo 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 Guía de Portadores de FreeBSD, así como a la política de OpenBSD al respecto y a algunas pistas que le servirán de ayuda.

Por qué un porte está desfasado con respecto a su versión actual

La colección de portes es un proyecto llevado a cabo por voluntarios. A veces, el proyecto no dispone de suficientes desarrolladores para mantenerlo todo actualizado. Los desarrolladores suelen escoger aquello que consideran interesante y que pueden comprobar en sus sistemas. Cuantas más donaciones hayan, más sistemas habrán para la comprobación de portes.

Debido a esto, algunos portes en concreto pueden estar desfasados con respecto a sus versiones actuales. En la colección de portes puede haber una versión de enero de un programa mientras que la nueva versión del programa fue lanzada por sus desarrolladores en mayo, varios meses después. A menudo, ésta puede ser una decisión tomada a conciencia; la nueva versión puede dar algún problema en OpenBSD que el mantenedor del porte está intentando resolver, o algún problema que haga que la nueva vresión sea peor que la antigua: OpenBSD puede tener objetivos diferentes que los desarrolladores del programa en cuestión, lo que a veces da como resultado unas funcionalidades y un diseño o implementación que no son deseables bajo el punto de vista de los desarrolladores de OpenBSD. La actualización también se puede postponer debido a que la nueva versión no sea considerada como crucial.

Si de verdad necesita una nueva versión de un porte, puede preguntar al MANTENEDOR del porte si puede actualizarlo (vea abajo cómo descubrir quién es el mantenedor); si puede enviar parches Vd. mismo, mucho mejor. Para crear parches apropiados debe leer la documentación sobre cómo portar programas.

Problemas y direcciones de contacto

Si tiene problemas con un porte de la colección, por favor escriba al mantenedor del porte. Para saber quién es el mantendor del porte puede hacer como en este ejemplo:

       % cd /usr/ports/archivers/unzip
       % make show=MAINTAINER

De forma alternativa, si no existiera un mantenedor, o si no pudiera contactar con él, por favor envíe un mensaje a la lista de correo de portes de OpenBSD, ports@openbsd.org. Por favor, no use misc@openbsd.org para preguntas relacionadas con los portes. 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. Para esto puede usar el guión (script) portslogger, que se encuentra en /usr/ports/infrastructure/build. Un ejemplo de cómo funciona portslogger:

       % cd /usr/ports/archivers/unzip
       % su
       # mkdir -p ~/portslogs
       # make clean install 2>&1 | /usr/ports/infrastructure/build/portslogger \
               ~/portslogs

Después de esto debería tener un fichero de registro (logfile) en su directorio ~/portslogs, que puede enviar al mantenedor del porte. Asegúrese de que no esté usando ninguna opción especial para compilar el porte, como por ejemplo en /etc/mk.conf.

De forma alternativa puede


OpenBSD
www@openbsd.org
Originally [OpenBSD: ports.html,v 1.79 ]
$Translation: ports.html,v 1.39 2004/09/02 19:23:13 santana Exp $
$OpenBSD: ports.html,v 1.40 2004/09/02 20:03:07 jufi Exp $