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 archivolista_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 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 exportar | Comando Pacman | Destino sugerido | |
| Solo Oficiales | pacman -Qnq | oficiales.txt | |
| Solo AUR | pacman -Qmq | aur.txt | |
| Todo junto | pacman -Qq | backup_full.txt | |
| Paquetes explícitos* | pacman -Qeq | mis_favoritos.txt |
(*) Nota sobre Paquetes explícitos: Este es mi método favorito.
pacman -Qeqexporta 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
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
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)
pacman -Qq | grep -E '(-devel|-sdk|git|cmake|clang|python-|rust)' > herramientas_dev.txt 3. El método de "Instalación Explícita" (Recomendado)
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?
pacman -Qq | grep -E '(qt6|kirigami|kde-frameworks)' > entorno_desarrollo_kde.txt
Comentarios desde Mastodon
Para comentar, responde a este post en Mastodon.