Hola Fronters 👋

Llegamos a la tercera y última entrega de nuestra serie sobre administración de paquetería en Linux. Ya cubrimos Debian y derivados (Parte I) y RHEL y derivados (Parte II). Hoy toca el turno de una de las distribuciones más queridas por la comunidad: ArchLinux y sus derivados como Manjaro, EndeavourOS, Garuda Linux y ArcoLinux.

ArchLinux tiene un enfoque único: rolling release, simplicidad, y el famoso gestor de paquetes pacman, acompañado del ecosistema AUR (Arch User Repository). Prepárate para una experiencia de gestión de paquetes como ninguna otra. ¡Vamos allá! 🚀

Pacman: el corazón de ArchLinux

Pacman (Package Manager) es el gestor de paquetes de ArchLinux. Es rápido, eficiente y combina en un solo binario lo que en otras distribuciones se reparte entre múltiples herramientas. Maneja tanto la resolución de dependencias como la instalación, actualización y eliminación de paquetes.

Comandos básicos de Pacman

Sincronizar repositorios

sudo pacman -Sy

Actualizar todo el sistema

sudo pacman -Syu

Esta es la forma correcta de mantener ArchLinux actualizado. A diferencia de Debian o RHEL, en Arch no hay separación entre update y upgrade; todo se hace en un solo comando.

Instalar paquetes

sudo pacman -S nginx
sudo pacman -S nginx php-fpm mariadb

Eliminar paquetes

sudo pacman -R nginx              # elimina el paquete
sudo pacman -Rs nginx             # elimina el paquete + dependencias no necesarias
sudo pacman -Rns nginx            # elimina + dependencias + archivos de configuración

Buscar paquetes

pacman -Ss servidor web           # busca en repositorios
pacman -Qs nginx                  # busca solo entre paquetes instalados
pacman -Si nginx                  # información detallada de un paquete
pacman -Qi nginx                  # información de un paquete instalado

Listar paquetes instalados

pacman -Q                         # todos los paquetes
pacman -Qe                        # solo los explícitamente instalados
pacman -Qdt                       # dependencias huérfanas
pacman -Ql nginx                  # listar archivos de un paquete
pacman -Qo /etc/nginx/nginx.conf  # qué paquete instaló un archivo

Instalar desde un archivo local

sudo pacman -U paquete.pkg.tar.zst

Flags clave de pacman

  • -S: sincronizar (install desde repos)
  • -R: remove
  • -Q: query
  • -U: instalar desde archivo local
  • -y: refrescar la base de datos de paquetes
  • -u: actualizar el sistema
  • -s: buscar por nombre/descripción
  • -i: información del paquete
  • -l: listar archivos
  • -o: buscar qué paquete posee un archivo
  • -c: limpiar caché

pacman.conf: configuración global

El archivo de configuración de pacman se encuentra en /etc/pacman.conf:

[options]
HoldPkg     = pacman glibc
Architecture = auto
Color
ILoveCandy
CheckSpace
VerbosePkgLists
ParallelDownloads = 5

[core]
Include = /etc/pacman.d/mirrorlist

[extra]
Include = /etc/pacman.d/mirrorlist

[community]
Include = /etc/pacman.d/mirrorlist

[multilib]
Include = /etc/pacman.d/mirrorlist

Algunas opciones interesantes:

  • Color: output a color
  • ILoveCandy: barra de progreso con temática de Pokémon
  • ParallelDownloads: descarga varios paquetes simultáneamente
  • VerbosePkgLists: muestra paquetes con versión en las actualizaciones

Mirrorlist: espejos de descarga

ArchLinux usa /etc/pacman.d/mirrorlist para definir desde qué servidores descargar los paquetes. La velocidad de las actualizaciones depende en gran medida de tener mirrors rápidos y geográficamente cercanos.

# Generar mirrorlist optimizada con Reflector
sudo pacman -S reflector
sudo reflector --country Venezuela --latest 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

# También puedes usar Rankmirrors (obsoleto)
# o editar manualmente el archivo moviendo mirrors rápidos al inicio

AUR: Arch User Repository

El AUR es un repositorio comunitario donde los usuarios de Arch comparten PKGBUILD (scripts para compilar/empaquetar software). Es la razón principal por la que Arch tiene tanto software disponible, incluso programas que no están en los repositorios oficiales.

El flujo manual para instalar desde AUR:

# 1. Clonar el repositorio del PKGBUILD
git clone https://aur.archlinux.org/yay.git
cd yay

# 2. Revisar el PKGBUILD (¡siempre!)
cat PKGBUILD

# 3. Compilar e instalar
makepkg -si

Ayudantes de AUR: Yay y Paru

Los ayudantes de AUR automatizan el proceso de buscar, descargar, compilar e instalar paquetes desde el AUR. Los dos más populares son yay y paru.

Yay (Yet Another Yogurt)

# Instalar yay desde AUR
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si

# Usar yay (compatible con los flags de pacman)
yay -S google-chrome         # instalar desde AUR
yay -Syu                      # actualizar sistema + AUR
yay -Ss spotify               # buscar en repos y AUR
yay -Rns google-chrome        # eliminar
yay -Yc                       # limpiar dependencias huérfanas

Paru

# Instalar paru
git clone https://aur.archlinux.org/paru-bin.git
cd paru-bin
makepkg -si

# Comandos similares a yay
paru -S visual-studio-code-bin
paru -Syu
paru -Ss discord

PKGBUILD: el corazón del AUR

Un PKGBUILD es un script Bash que describe cómo compilar e instalar un paquete en ArchLinux. Es similar a un Dockerfile pero para empaquetado.

# Ejemplo de PKGBUILD
pkgname=mi-programa
pkgver=1.0.0
pkgrel=1
pkgdesc="Un programa genial para Fronters"
arch=('x86_64')
url="https://github.com/fronter/mi-programa"
license=('GPL3')
depends=('glibc' 'libcurl')
source=("$url/archive/v$pkgver.tar.gz")
sha256sums=('abcdef1234567890...')

build() {
  cd "$srcdir/$pkgname-$pkgver"
  ./configure --prefix=/usr
  make
}

package() {
  cd "$srcdir/$pkgname-$pkgver"
  make DESTDIR="$pkgdir" install
}

makepkg: compilar paquetes

makepkg es la herramienta que lee un PKGBUILD y genera un paquete .pkg.tar.zst instalable con pacman.

makepkg                     # compilar (genera .pkg.tar.zst)
makepkg -si                 # compilar e instalar
makepkg -s                  # instalar dependencias automáticamente
makepkg -c                  # limpiar archivos temporales tras compilar
makepkg --verifysource      # solo verificar checksums
makepkg --noconfirm         # no preguntar confirmación

Gestión de la caché de pacman

Pacman guarda todos los paquetes descargados en /var/cache/pacman/pkg/. Con el tiempo, esta caché puede ocupar varios gigabytes.

# Limpiar caché (mantiene las últimas 3 versiones)
sudo pacman -Sc

# Limpiar todo el caché (solo versiones instaladas)
sudo pacman -Scc

# Usar paccache (parte de pacman-contrib) para control granular
sudo pacman -S pacman-contrib
sudo paccache -rk 2         # mantener 2 versiones por paquete
sudo paccache -ruk 0        # eliminar versiones desinstaladas
sudo paccache -rk 2 -uk 1   # combinar: 2 instaladas, 1 desinstalada

Downgrade de paquetes

Aunque Arch es rolling release y se espera que siempre estés al día, a veces necesitas revertir un paquete a una versión anterior.

# Usando pacman desde la caché
sudo pacman -U /var/cache/pacman/pkg/nginx-1.24.0-1-x86_64.pkg.tar.zst

# Usando downgrade (herramienta del AUR)
yay -S downgrade
sudo downgrade nginx

Es recomendable agregar paquetes downgradeados a IgnorePkg en /etc/pacman.conf para evitar que se sobrescriban en la próxima actualización:

IgnorePkg = nginx

Comparativa rápida

Función Debian (apt) RHEL (dnf) Arch (pacman)
Instalar apt install dnf install pacman -S
Eliminar apt remove dnf remove pacman -R
Actualizar apt update + upgrade dnf update pacman -Syu
Buscar apt search dnf search pacman -Ss
Info apt show dnf info pacman -Si
Archivos dpkg -L rpm -ql pacman -Ql

Buenas prácticas en ArchLinux

  • Actualiza frecuentemente (pacman -Syu al menos una vez por semana). Arch es rolling release y posponer actualizaciones puede romper el sistema
  • Revisa archlinux.org/news antes de actualizar, especialmente si hubo cambios importantes en pacman, glibc o systemd
  • Siempre revisa el PKGBUILD antes de compilar desde AUR
  • Usa paccache para mantener la caché bajo control
  • Si usas yay o paru, prefiero las versiones -bin (binarios precompilados) para ahorrar tiempo de compilación
  • Mantén un kernel LTS instalado como respaldo por si una actualización del kernel principal falla

Conclusión

ArchLinux ofrece una experiencia de gestión de paquetes única: rápida, simple y potente. Pacman es uno de los gestores más eficientes del mundo Linux, y el AUR te da acceso a prácticamente cualquier software imaginable.

Con esta serie hemos cubierto los tres grandes ecosistemas de paquetería en Linux: Debian/APT, RHEL/DNF y Arch/Pacman. Cada uno tiene sus fortalezas y su filosofía, pero todos comparten el mismo objetivo: hacer que la gestión de software en Linux sea robusta, predecible y eficiente.

Esperamos que esta serie te haya sido de utilidad. Si te gustó, no olvides compartir y dejar tu comentario. Nos vemos en el próximo artículo Fronters! 🐧


📊 Infografía: Pacman y AUR (ArchLinux)

Descarga nuestra infografía resumen con los comandos principales:

📥 Puedes descargar la infografía aquí

🔗 Infografía comparativa general — Descarga la comparativa de todos los gestores de paquetes.