Cómo usar makepkg para instalar paquetes en Arch Linux y derivadas

makepkg es la herramienta más primitiva que puedes usar para compilar paquetes que vengan de AUR en Arch Linux y distribuciones relacionadas (Manjaro, EndeavourOS, Xero Linux…). La mayoría de personas inmediatamente van a querer dar el salto a un gestor de paquetes compatible con AUR, como Yay o Paru, por las limitaciones que tiene vivir únicamente de makepkg exclusivamente.

Sin embargo, en algunos casos puede salvar la vida cuando todo lo demás falla, así que creo que es muy relevante saber, al menos cómo descargar y compilar un paquete de AUR con makepkg. ¿Por qué? Así como mínimo, porque para instalar Yay necesitarás usar algo, ¿no? ¿o pretendes mantener yay fuera de la base de datos de pacman? Además, si eres una de esas personas que saben cómo crear y modificar PKGBUILDs, trabajar con makepkg te será más sencillo en muchos casos.

Continuar leyendo «Cómo usar makepkg para instalar paquetes en Arch Linux y derivadas«

¿Para qué sirve AUR?

Como ya he mencionado en el pasado, las distribuciones GNU/Linux están conectadas a un repositorio de paquetes, que es un bazar donde puedes encontrar todo tipo de programas para tu ordenador, que instalas con un comando a través de tu gestor de paquetes en la terminal, o mediante una herramienta gráfica como KDE Discover o GNOME Software.

Sin embargo, una de las características típicas de los repositorios de las distribuciones GNU/Linux es que el software que encuentras ahí tiene cierto grado de oficialidad. Los paquetes han sido probados para asegurarse de que funcionen en la versión de GNU/Linux que estés utilizando, y además se proporcionan pre-compilados para que sea tan rápido como descargar el paquete y extraer.

Como alternativa, AUR es el Arch User Repository. Es otro repositorio, pero en este caso contiene paquetes preparados por la comunidad. Cualquier persona puede contribuir con su propio paquete, y lo normal es que esos paquetes están mantenidos por personas que no formen parte de Arch, sino que sean también participantes de la comunidad. En algunos casos puede ser la misma persona que fabrica el programa, y típicamente será alguien que, en cualquier modo, al menos lo utilice.

¿Qué diferencia hay?

Los paquetes que encuentras en AUR se diferencian de los que te vas a encontrar en el repositorio central de tu distribución por al menos las siguientes diferencias.

  • La principal diferencia es que en el caso de AUR, lo que te descargas es la receta, también conocida como PKGBUILD. Este es el script que se usa para fabricar un paquete desde el código fuente. El proceso es casi automático, porque puede descargar las dependencias necesarias para fabricar el paquete, y como resultado obtienes un archivo de tipo .pkg.tar.zst, que puedes instalar con Pacman. En otras palabras: mientras que del repositorio principal de Arch te descargas un paquete pre-compilado en los propios servidores de Arch, y por lo tanto, más rápido de instalar, con AUR el paquete lo compilas tú en tu máquina, usando tiempo y recursos.
  • Otra es que no tiene por qué estar probado que funcione. En otras palabras: un paquete que instalas con pacman desde los repositorios centrales de Arch debería instalar y ejecutar bien, porque alguien ha probado que funcione. Sin embargo, los repositorios AUR se basan en la vigilancia continua de la comunidad. Lo normal es que un paquete se instale bien, pero a veces el programa puede cambiar y las instrucciones para fabricar el paquete pueden quedar obsoletas. Por suerte, modificar un PKGBUILD tampoco es muy dificil, así que si tienes experiencia manteniendo shell scripts, es incluso posible que puedas corregirlo con tu editor de textos tras leer las instrucciones actualizadas, y así poderlo instalar.
  • Y la otra más importante, es que no son paquetes verificados. Esto es importante en temas de seguridad. Cuando instalas un paquete desde el repositorio central de Arch Linux, no sólamente está pre-compilado en los servidores de Arch. Al prepararse en un entorno especial y restringido, y al llevar firmas, es más dificil que se cuele malware en un paquete (no imposible, como aprendimos durante el drama de XZ, aunque por suerte en el caso de Arch Linux era imposible ejecutar la parte de código comprometida). Sin embargo, en el caso de AUR, las recetas las usas bajo tu propia responsabilidad.

Con esto no quiero decir que usar AUR sea malo. Al contrario, AUR es parte de lo que hace que la experiencia de usar una distribución basada en Arch sea tan buena. Hay una comunidad activa que se ocupa de proporcionar instrucciones de integración de casi cualquier paquete que se te ocurra, para que puedas instalarlo en tu sistema usando el gestor de paquetes, con las ventajas que eso aporta, en vez de tener que hacerlo a mano usando métodos que no permiten al sistema luego administrar los archivos del programa.

¿Es seguro usar AUR?

AUR es a menudo seguro de usar. Por lo general, si instalas un paquete popular desde AUR, incluso si no sabes verificar estas cosas, puedes asumir que colectivamente la comunidad está bastante pendiente de estos temas, y que hay suficientes ojos mirando que no pase nada raro.

Sin embargo, como digo, esto pasa con los paquetes populares. Existen muchos paquetes que no tienen votos, ni popularidad, y en algunos casos, ni siquiera maintainer. El maintainer es la persona que está a cargo de un paquete de AUR. Cualquier persona puede volverse maintainer, y aunque lo normal es que lo mantenga una persona que lo usa activamente (y que por eso tiene interés en que la receta funcione bien), podría ocurrir que un paquete quede huérfano (es decir, sin maintainer) y alguien se aproveche de la situación para adoptarlo y modificarlo de forma maliciosa. Esto pasó en 2018 con un paquete que instalaba Acrobat Reader para Linux y un par de paquetes más. La persona involucrada en la publicación del malware fue expulsada del sistema AUR, pero pegó un buen susto.

Lamentablemente, la interfaz web de AUR tampoco te dice si un paquete ha cambiado de maintainer hace poco, aunque en mi opinión, debería. Sí es verdad que a veces los comentarios de un paquete en la página web pueden contener información interesante. No está de más revisar antes de instalar nada y confirmar que no hay nadie dando la voz de alarma.

En cualquier caso, dado que AUR no aporta ningún tipo de garantías, dejándote a ti como responsable de lo que sea que instales, cuando te animes a usar AUR, hay un par de consejos que deberías tener en cuenta.

  1. Uno es que, aunque tengas un buen frontend para instalar paquetes desde AUR (yo uso yay en este momento, por ejemplo), deberías aprender a usar el comando makepkg, por lo que pueda pasar. Todas las instalaciones de Arch Linux traen makepkg, que es el programa que sirve para convertir una receta en formato PKGBUILD a paquete compilado que puedes instalar con Pacman.
  2. Otro es que leas la receta que estás a punto de ejecutar. En otras palabras, que revises el contenido del archivo PKGBUILD antes de fabricar la receta. Lo normal es que tu frontend te pregunte si quieres hacer esto. Por ejemplo, yay lo hace. No deberías saltarte este paso, y deberías inspeccionar como mínimo que no se descarguen archivos sospechosos desde otras fuentes que no sean la de la página del programa oficial. Cuantos más conocimientos tengas de shell scripting, mejor. Si sabes cómo fabricar scripts, deberías leerte el script completo y vigilar que entre los pasos de compilación del paquete o de instalación no haya algo sospechoso.

Diccionario: ¿qué es una distro rolling release?

Una distribución GNU/Linux de tipo rolling release es una distro en la que las actualizaciones de paquetes y de la propia infraestructura de la distro entran todo el tiempo y a todas horas, así que siempre usas la última versión de los programas que trae.

Esto contrasta con las que no son rolling release. Ubuntu, Fedora, Debian, NixOS… son ejemplos de distros donde cada pocos meses o años, celebran con un jolgorio el lanzamiento de una nueva versión, como por ejemplo, Ubuntu 24.10 o Fedora 42. Una vez que esa versión sale, los paquetes que hay en los repositorios de esa versión únicamente reciben actualizaciones con correcciones de errores o seguridad, pero si sale una nueva versión de LibreOffice, por ejemplo, la versión de LibreOffice que trae el repositorio de APT de esa versión de Ubuntu no se actualiza; si acaso, lo hará el de la próxima versión que Ubuntu publique.

Esto no afecta a otras formas de distribuir una aplicación, como Snap o Flatpak. En los últimos años, algunos distribuidores como Mozilla o GNOME han tratado de impulsar el uso de estas plataformas porque precisamente pueden esquivar el ciclo de actualizaciones regular de la distribución, y así ofrecer paquetes más modernos.

Las principales distros ahora mismo que usan rolling release son, entre otras, Manjaro Linux, Arch Linux, EndeavourOS o Void Linux. También es posible usar Debian Testing, que es una versión preliminar de Debian que también se comporta como si fuese rolling.

Características de una distribución rolling

La principal característica de estas distribuciones es que, por lo tanto, si mañana sale una nueva versión del entorno de ventanas, de Bash, de LibreOffice o de algún otro programa importante, notarás que al cabo de unos días podrás actualizar directamente a la última versión de tu programa, porque a medida que los paquetes se actualizan por sus autores, los cambios entran en un repositorio central que está en continuo cambio.

Las distribuciones rolling release no suelen ocuparse mucho de las versiones de la propia distro como tal. Arch Linux, por ejemplo, es simplemente Arch Linux. Es verdad que la ISO que obtienes de la página web está etiquetada con el mes en el que estás, porque renuevan el instalador mensualmente para actualizar los paquetes que trae, pero una vez lo instales ya da igual. Manjaro utiliza números, como puede ser 24.1, pero lo hace por la misma razón. Una vez instalado, el sistema se actualiza continuamente.

Ventajas y desventajas

Entonces, ¿qué ventaja puede aportar usar una distribución rolling release? Si eres una persona a la que le gusta utilizar siempre las últimas mejoras y novedades de los programas que usa a diario, puede que una distribución rolling release sacie tu necesidad. GNOME, KDE, Xfce… se actualizarán en los repositorios de tu distribución rolling al poco de estar disponible, aunque esto siempre depende de que se pruebe que no rompe la integridad de la distribución porque algo haya cambiado, así que en algunos casos puede tardar un par de semanas en estar disponible una nueva versión de un programa grande como GNOME.

Sin embargo, ten en cuenta que esto también tiene consecuencias. Por ejemplo, es difícil retener un paquete si quieres evitar que se actualice. Esto ocurre porque las dependencias de ese paquete también se podrían actualizar, provocando errores de compatibilidad, así que además también requieren que frecuentemente andes actualizando el ordenador para garantizar que todos los paquetes siguen funcionando.

¿Cómo instalaría WinRAR en GNU/Linux?

Esta es una de las preguntas más típicas para alguien que llega a GNU/Linux por primera vez. Voy a intentar aclarar un poco la confusión sobre GNU/Linux, archivos RAR y cómo extraerlos.

Lamentablemente, no puedes instalar WinRAR en GNU/Linux porque no existe versión de WinRAR para GNU/Linux. Sin embargo, es posible igualmente extraer de forma gratuita archivos .rar usando el programa unrar. En este artículo te cuento cómo.

Tienes que tener en cuenta, antes que nada, que el formato de archivos RAR es un formato propietario. Esto quiere decir que no es libre y abierto, y que la empresa detrás de WinRAR controla la creación de herramientas que interactúen con sus archivos. Esta es la razón por la que tan complicado es encontrar un software que simplemente extraiga archivos RAR: nadie se quiere meter en problemas con WinRAR.

Aunque puedes hacer lo que quieras, sería recomendable reemplazar los archivos .rar por otros formatos de archivos diferentes para comprimir, que no tengan restricciones tan severas, como .zip o .tar.gz. Con esto, es posible intercambiar más fácilmente archivos comprimidos porque no depende tanto de que las dos personas tengan la capacidad para extraer archivos .rar.

Cómo extraer archivos RAR en GNU/Linux con unrar

La mayoría de distribuciones GNU/Linux traen igualmente un programa en sus repositorios llamado unrar. Si bien WinRAR es un programa para Windows «de pago» (o al menos, trialware), su desarrollador ha tenido la delicadeza de proporcionar una versión gratuita (que no libre) para GNU/Linux que es capaz de descomprimir archivos.

Antes de instalarla, conviene que te plantees si la necesitas. Algunas distribuciones modernas, como Fedora, son capaces de extraer archivos RAR simplemente haciendo doble clic sobre ellos desde el explorador de archivos. Ya hemos hablado de esto alguna vez en esta web. Si lo único que necesitas es extraer un par de documentos, tal vez con esto te baste.

Si no eres capaz, vas a tener que instalar unrar desde el gestor de paquetes de tu distribución. Desde la terminal, tendrás que ejecutar el comando más oportuno para tu plataforma:

  • Ubuntu/Debian/derivados: sudo apt install unrar
  • Fedora/RHEL: sudo dnf install unrar-free
  • Arch o basadas en Arch: instala el paquete rar desde AUR.

Nota importante: si estás usando Debian, tendrás que activar los repositorios non-free, que no suelen venir activos por defecto. En Ubuntu, sí es posible instalarlos a la primera. Para Debian, también tienes como alternativa instalar unrar-free, aunque existen algunas diferencias en el funcionamiento que para algunos archivos RAR puede suponer que sea incapaz de extraerlo en primer lugar.

Una vez lo hayas instalado, ¿cómo se extrae un archivo RAR? Desde la misma terminal, deberás irte a la carpeta en la que está tu archivo RAR usando el comando cd, por ejemplo: cd /home/usuario/Descargas. A continuación, deberás utilizar el comando unrar con la opción x, que quiere decir extraer, y darle el nombre del archivo. Aquí un ejemplo completo:

# Me voy a la carpeta donde está mi archivo:
~ $ cd Descargas


# Ahora extraigo mi archivo RAR
~/Descargas $ unrar x Documentacion.rar
UNRAR 5.61 beta 1 freeware     Copyright (C) 1993-2018 Alexander Roshal
Extracting from Documentacion.rar

Extracting   Documento1.pdf
Extracting   Documento2.pdf
Extracting   Documento3.pdf
Extracting   Documento4.pdf
All OK


# Listo, ya están ahí mis archivos extraídos
~/Descargas $ ls
Documentacion.rar  Documento1.pdf  Documento2.pdf
Documento3.pdf     Documento4.pdf

wxWidgets 3.2 puede traerte dolores de cabeza al actualizar en Arch Linux

Si utilizas Arch Linux, es posible que la última actualización de wxWidgets te traiga algún dolor de cabeza al actualizar tu ordenador, como han advertido recientemente desde el propio sitio de noticias de Arch Linux.

Hace una semana salió wxWidgets 3.2, la primera versión del framework para aplicaciones gráficas en casi 9 años. Cuesta creerlo pero wxWidgets todavía no soportaba algunas funciones que en otros frameworks para hacer aplicaciones gráficas sí son ya habituales, como el soporte para modo oscuro, el modo de alta resolución compatible con pantallas de alto DPI o el soporte para Wayland.

Una de las novedades de wxWidgets es que, en el caso de UNIX, ha empezado a soportar de forma experimental el uso de QT además de GTK+, que es lo que se usaría ahora mismo al ejecutar este tipo de aplicaciones en sistemas operativos como GNU/Linux o un BSD. Sin embargo, esto tiene algunas consecuencias inesperadas.

Arch Linux ha anunciado recientemente que, debido a que wxWidgets ahora proporciona una forma de generar aplicaciones usando QT en vez de GTK+, el viejo nombre de los paquetes, wxgtk, ya no suena muy convincente ni seguro a largo plazo. Es por ello que han renombrado los paquetes de wxgtk a wxwidgets. Sin embargo, los problemas no acaban ahí. Con esta nueva versión de wxWidgets se elimina el soporte para el viejo frontend basado en GTK2. Podría parecer muy osado que un framework siga manteniendo GTK+ 2, pero cabe repetir que esta es la primera versión en ¡nueve años! Por entonces apenas había salido GNOME 3.8 y se estaba trabajando en GNOME 3.10, de modo que GTK+ 3 era un invento más reciente (y también menos querido) que ahora.

Eso significa que si tienes alguna aplicación que todavía esté usando este backend, va a haber problemas cuando ocurra el proceso de actualización. Tal como indican en el propio anuncio, si al actualizar obtienes problemas como que se te diga que wxgtk2 depende de wxgtk-common, deberás solucionar esto manualmente eliminando wxgtk2 de tu sistema usando pacman -Rs wxgtk2, o algo equivalente para eliminar ese paquete de tu sistema, antes de seguir actualizando.