- ENTRADA 8 -

Ports: aumenta el número de programas disponibles para OpenBSD



OpenBSD tiene actualmente 21.537 paquetes binarios disponibles para su instalación a través del sistema de paquetes (pkg_add).

Estos binarios son revisados concienzudamente por el equipo, y empaquetados solo cuando están seguros de su buen funcionamiento.


¿Qué pasa cuando necesito un programa que no está empaquetado?, para eso surgieron los "ports".


Estos programas los lleva un equipo específico. El propio equipo de desarrollo de ports de OpenBSD aconseja utilizar paquetes en lugar de construir una aplicación a partir de los ports, pero aun así ponen a nuestra disposición un gran número de ellos.


Qué son los ports


La particularidad de los ports es que vienen en una estructura de árbol por categorías (multimedia, graphics, office...), y vienen con el código fuente, por lo que hay que compilarlos, pero no te asustes, OpenBSD no es como GNU/Linux en ese sentido. OpenBSD es un único proyecto de sistema operativo integral (no hay distintos proyectos separados como un kernel, programas GNU y la propia distribución), todo está optimizado para que funcione.


Cómo los utilizo


Lo primero es ir a la web de mirrors y elegir el que más nos guste. Yo elijo uno de Francia por distancia:


https://ftp.fr.openbsd.org/pub/OpenBSD/7.1/



Verás un archivo llamado ports.tar.gz que hay que descargar en /tmp. La idea es verificar primero y después descomprimir. Copio/pego las líneas de la guía oficial que puedes usar:


cd /tmp
$ ftp https://cdn.openbsd.org/pub/OpenBSD/$(uname -r)/{ports.tar.gz,SHA256.sig}
$ signify -Cp /etc/signify/openbsd-$(uname -r | cut -c 1,3)-base.pub -x SHA256.sig ports.tar.gz

Esto se hace para verificar que no han habido cambios "clandestinos" en los puertos. Imagina si han accedido cibercriminales a los ports; tienen el código fuente a su disposición para modificar lo que quieran.


Si nos ha dado el OK, descomprimimos:



cd /usr
tar xzf /tmp/ports.tar.gz

Verás que se ha creado un árbol por categorías. Ya puedes borrar el archivo ports.tar.gz para liberar espacio.

Ahora bajaré la lista de los ports, una especie de índice para poder hacer búsquedas:


cd /usr/ports
pkg_add portslist

Ya se pueden buscar ports en el árbol. Para ello usaremos este comando dentro de /usr/ports:


make search key=programa

Saldrá información sobre el port, pero sobre todo nos interesa la categoría en la que está porque es la que tenemos que añadir para su instalación.

Cambio a la ruta del programa que quiero y lo compilo como siempre:


cd /usr/ports/graphics/viewnior
make install

Obtendrá, extraerá y parcheará el código fuente, configurará y construirá (compilará) la fuente, instalará los archivos en un directorio temporal, creará el paquete, y por último, lo instalará (generalmente bajo /usr/local/). Si hubieran dependencias, haría lo mismo recursivamente para todas ellas.


Hay que tener en cuenta que el tiempo que tarde en compilar el port va a depender de tu máquina y de lo "gordo" que sea el port. Por ejemplo, no sería lo mismo compilar Firefox que nano. En mi caso, viewnior, entre el propio programa y las dependencias, me tardó unos 6 minutos.


NOTA: Si ya estaba instalado y solo querías actualizarlo, usarás "make update" en lugar de make install. Esto llamará a pkg_add con flag -r.


Limpiar


Una compilación deja restos de archivos y librerías necesarias para compilar pero que después ya no son necesarias. Limpiaré los restos de la compilación:


make clean

NOTA: Las dependencias se limpian automáticamente, pero los paquetes que solo eran necesarios para la compilación y que no se van a usar hay que desinstalarlos manualmente.


Limpar esos paquetes no necesarios se hace con:


pkg_delete -a

NOTA: Todo podría ir en la misma linea: "make install clean"



Ya no quiero un port. Desinstalando


A veces los ports pasan a ser empaquetados o has encontrado una alternativa mejor en binario.

Para desinstalar un port irás a la ruta del port, por ejemplo /usr/pors/x11/gmrun y teclearemos el siguiente comando:


make uninstall

En la siguiente web tienes más opciones en la guía oficial:


FAQ Ports


Y en esta tienes noticias sobre los ports:


Openports




Tags #openbsd



◄ Listado de artículos

◄◄ Inicio



/blog/obsd/