Exportar e importar paquetes con Pacman

Digamos que queremos hacer un instalación en limpio de nuestro sistema operativo favorito, si Arch Linux, pero no queremos olvidarnos de los paquetes que tenemos instalados. ¿Cómo lo hacemos?
Pacman no puede exportar paquetes de AUR directamente porque Pacman solo gestiona los repositorios oficiales. Los paquetes de AUR (Arch User Repository) se consideran paquetes "externos" o "extranjeros". Sin embargo, puedes obtener esa lista fácilmente usando Pacman para filtrar lo que no pertenece a los repositorios oficiales. Aquí tienes cómo hacerlo:

1. Listar solo los paquetes de AUR

Para generar una lista de los paquetes que has instalado desde el AUR (o cualquier paquete que no esté en los repositorios principales), usa el siguiente comando: pacman -Qm > mis_paquetes_aur.txt -Q: Consulta la base de datos local. -m: Filtra los paquetes "extranjeros" (los que no se encuentran en la base de datos de los repositorios configurados en pacman.conf).

2. Exportar una listalimpia" (Solo nombres)

Si tu intención es usar esa lista para reinstalarlos en otra máquina, lo mejor es exportar solo los nombres, sin los números de versión: pacman -Qmq > lista_aur.txt -q: (quiet) Omite la versión y muestra solo el nombre del paquete.

3. ¿Cómo los reinstalo en otro sistema?

Una vez que tengas tu archivo lista_aur.txt en la nueva máquina, no podrás usar sudo pacman -S (porque no los encontrará). Tendrás que usar un AUR helper como Yay o Paru. Por ejemplo, con Yay: yay -S - < lista_aur.txt

4. Paquetes oficiales

Para exportar los paquetes que provienen de los repositorios oficiales (como Core, Extra o Multilib), el proceso es muy similar, pero cambiamos el filtro para decirle a Pacman que ignore lo que instalaste desde el AUR. pacman -Qnq > paquetes_oficiales.txt -n: Filtra solo los paquetesnativos" (los que están en los repositorios configurados). -q: Muestra solo el nombre (sin la versión), que es lo ideal para reinstalar.

5. Exportar TODO (Oficiales + AUR)

Si prefieres no separar las listas y quieres un respaldo total de todo lo que hay en tu sistema en un solo archivo: pacman -Qq > todos_mis_paquetes.txt

¿Cómo restaurar estos paquetes?

Si formateas o cambias de PC, puedes reinstalar todos los paquetes de los repositorios oficiales de una sola vez con este comando: sudo pacman -S --needed - < paquetes_oficiales.txt El flag --needed es muy útil aquí; hará que Pacman ignore los paquetes que ya tienes instalados, evitando reinstalaciones innecesarias y ahorrándote tiempo.

Comparativa de exportación

Qué quieres exportarComando PacmanDestino sugerido
Solo Oficialespacman -Qnqoficiales.txt
Solo AURpacman -Qmqaur.txt
Todo juntopacman -Qqbackup_full.txt
Paquetes explícitos*pacman -Qeqmis_favoritos.txt

(*) Nota sobre Paquetes explícitos: Este es mi método favorito. pacman -Qeq exporta solo los paquetes que tú instalaste manualmente y no sus dependencias. Esto te da una lista mucho más corta y limpia, ya que al reinstalarlos, Pacman bajará automáticamente las dependencias necesarias de nuevo.

6. Paquetes de desarrollo

A lo mejor, como yo, estás creando alguna aplicación y has instalado un montón de paquetes que son de desarrollo. Para exportar específicamente los paquetes de desarrollo, tenemos un par de rutas dependiendo de qué tan "profunda" quieras la lista, ya que en Arch Linux no existe una etiqueta única de "desarrollo", pero sí grupos y patrones claros.

Aquí tienes las mejores opciones:

1. Exportar el grupo base-devel

Este es el conjunto esencial de herramientas (como gcc, make, patch, etc.) que probablemente ya tienes instalado si compilas cosas del AUR. 

pacman -Qg base-devel | awk '{print $2}' > desarrollo_base.txt 

-Qg: Lista los paquetes que pertenecen a un grupo específico.
 awk: Lo usamos para limpiar la salida y quedarnos solo con los nombres de los paquetes.

2. Filtrar por paquetes instalados que sean dependencias de desarrollo (makedepends)

Si lo que buscas es exportar paquetes que instalaste específicamente para compilar otros, puedes usar esta técnica. Sin embargo, Pacman no guarda el "tipo" de dependencia una vez instalado, así que lo más eficiente es filtrar por los paquetes que suelen ser herramientas de desarrollo: 

pacman -Qq | grep -E '(-devel|-sdk|git|cmake|clang|python-|rust)' > herramientas_dev.txt 

Este comando busca patrones comunes en nombres de librerías y herramientas de programación.

3. El método de "Instalación Explícita" (Recomendado)

Seguramente has instalado muchas librerías a mano. El comando más útil para ti será este: 

pacman -Qeq | grep -E '(qt6-|kirigami|cmake|gcc|ninja|extra-cmake-modules)' > mis_herramientas_cpp.txt 

-Qeq: Lista solo lo que tú instalaste manualmente (omitiendo dependencias automáticas). Esto evita que la lista se llene de "basura" y se centre en lo que realmente decidiste añadir a tu entorno de trabajo.

4. ¿Qué pasa con las librerías de Qt/KDE?

Si quieres una lista exacta de todo lo relacionado con el desarrollo de KDE/Kirigami que tienes en el sistema: pacman -Qq | grep -E '(qt6|kirigami|kde-frameworks)' > entorno_desarrollo_kde.txt 

Seguramente hay más combinaciones, pero creo que con estas vamos sobrados. Y eso es todo amigos..
← Volver a los artículos

Comentarios desde Mastodon

Para comentar, responde a este post en Mastodon.

Cargando comentarios…