Cómo usar pkgsrc en Linux

NetBSD es famoso por ejecutarse básicamente en cualquier cosa, pero ¿sabías que su segundo reclamo a la fama es el administrador de paquetes pkgsrc?

Al igual que NetBSD, pkgsrc se ejecuta básicamente en cualquier cosa, o al menos en cualquier cosa similar a Unix y Unix. Puedes instalar pkgsrc en BSD, Linux, Illumos, Solaris y Mac. En total, admite más de 20 sistemas operativos.

¿Por qué usar pkgsrc?

Con la excepción de MacOS, todos los sistemas operativos Unix vienen con un administrador de paquetes incluido. No necesariamente necesitas pkgsrc, pero aquí hay tres excelentes razones por las que puedes probarlo:

  • Paquetes. Si tienes curiosidad acerca de los paquetes, pero aún no has intentado crear un paquete tú mismo, pkgsrc es un sistema relativamente simple de usar, especialmente si ya estás familiarizado con Makefiles y sistemas de compilación como GNU Autotools.
  • Genérico. Si usas múltiples sistemas operativos o distribuciones, entonces probablemente encuentres un administrador de paquetes para cada sistema. Puedes usar pkgsrc en sistemas diferentes para que cuando empaquetes una aplicación para uno, lo hayas empaquetado para todos.
  • Flexible. En muchos sistemas de paquetes, no siempre es obvio cómo elegir un paquete binario o un paquete fuente. Con pkgsrc, la distinción es clara, ambos métodos de instalación son igual de fáciles y ambos resuelven las dependencias por ti.

Cómo instalar pkgsrc

Ya sea que estés en BSD, Linux, Illumos, Solaris o MacOS, el proceso de instalación es básicamente el mismo:

  1. Usar CVS para ver el árbol pkgsrc
  2. Usar Bootstrap en el sistema pkgsrc
  3. Instalar paquetes

Usar CVS para ver el árbol pkgsrc

Antes de Git, antes de Subversion, existía CVS. No tienes que saber mucho sobre CVS para hacer una revisión de tu código; si estás acostumbrado a Git, piensa en el checkout como un clon.

Cuando realizas una comprobación de CVS de pkgsrc, estás descargando “recetas” que detallan cómo se debe crear cada paquete.

Son muchos archivos, pero son pequeños porque en realidad no estás extrayendo el código fuente de cada paquete, solo la infraestructura de compilación y los Makefiles requeridos para crear según la demanda.

El uso de CVS te facilita la actualización de tu checkout de pkgsrc cuando se lanza uno nuevo.

Los documentos de pkgsrc recomiendan mantener tu árbol en el directorio /usr, por lo que debes usar sudo (o convertirse en root) para usar este comando:

Mientras escribí este artículo, la última versión es 2019Q3. Puedes consultar la sección de noticias de la página de inicio de pkgsrc.org o la documentación de NetBSD para determinar la última versión de lanzamiento.

Bootstrap en pkgsrc

Después de que el árbol pkgsrc se haya copiado en tu computadora, tendrás un directorio /usr/pkgsrc lleno de scripts de compilación.

Antes de poder usarlos, debes iniciar pkgsrc para poder acceder fácilmente a los comandos relevantes que necesitas para compilar e instalar el software.

La forma en que arranca pkgsrc depende del sistema operativo en el que te encuentres.

Para NetBSD, puedes usar el programa de arranque incluido:

En otros sistemas, hay mejores formas con algunas características personalizadas incluidas, proporcionadas por Joyent.

Para conocer el comando exacto que se debe ejecutar, tienes que visitar pkgsrc.joyent.com. Por ejemplo, en Linux (Fedora, Debian, Slackware, etc.):

Aunque la ruta sugiere que los archivos incluidos son para RHEL 7, los archivos binarios tienden a ser compatibles con todas las distribuciones de Linux excepto las más avanzadas.

Y si encuentras un binario incompatible con la distribución en la que te encuentras, tienes la opción de construir desde la fuente.

Debes verificar la suma de comprobación SHA1:

También puedes verificar la firma PGP:

Una vez que estés seguro de tener el kit de arranque adecuado, instálalo en /usr/ pkg:

Esto te proporciona los comandos habituales de pkgsrc. Debes agregar estas ubicaciones a tu RUTA:

Si prefieres utilizar pkgsrc sin depender de las compilaciones de Joyent, puedes ejecutar el script de arranque que obtuviste con el árbol pkgsrc.

Es necesario que leas el archivo README relevante en el directorio bootstrap antes de ejecutarlo, para obtener notas importantes específicas del sistema.

Cómo instalar software con pkgsrc

Instalar un binario precompilado (como lo harías con DNF o Apt) con pkgsrc es fácil.

El comando para las instalaciones binarias es pgkin , que tiene su propio sitio dedicado en pkgin.net. El proceso debería sentirse bastante familiar para cualquiera que haya usado Linux.

Para buscar el paquete tmux:

Para instalar el paquete tmux:

El objetivo del comando pkgin es imitar el comportamiento de los administradores de paquetes típicos de Linux, por lo que hay opciones para enumerar los paquetes disponibles, consultar los paquetes disponibles para encontrar lo que proporciona un ejecutable específico, y así sucesivamente.

Cómo construir desde el código fuente con pkgsrc

Sin embargo, el verdadero poder de pkgsrc es la facilidad de construir un paquete desde la fuente.

Descargaste todos los más de 20,000 scripts de compilación en el primer paso de configuración, y puedes acceder a ellos navegando directamente a tu árbol pkgsrc.

Por ejemplo, para compilar tcsh desde la fuente, primero, ubica el script de compilación:

A continuación, cambia al directorio de origen:

El directorio de script de compilación contiene varios archivos para ayudar a la aplicación a compilar en tu sistema, pero en particular, contiene el archivo DESCR, que contiene una descripción del software, así como el Makefile que desencadena la compilación.

Cuando estés listo, compila e instala:

El sistema pkgsrc utiliza el comando bmake (proporcionado por la revisión pkgsrc en el primer paso), así que asegúrate de usar bmake (y no make por costumbre).

Si estás compilando para varios sistemas, puedes crear un paquete en lugar de instalarlo de inmediato:

Los paquetes que crea pkgsrc son tarballs estándar, pero se pueden instalar convenientemente con pkg_add.

La colección pkgtools de pkgsrc proporciona los comandos  pkg_addpkg_infopkg_adminpkg_create  y pkg_delete para ayudarte a administrar los paquetes que construyes y mantienes en tu sistema.

Pkgsrc para una fácil administración

El sistema pkgsrc ofrece un enfoque directo y práctico para la administración de paquetes

Si estás buscando un administrador de paquetes que se mantenga fuera de lo común e invite a la personalización, debes probar pkgsrc en cualquier sistema operativo Unix o similar a Unix que estés ejecutando.