Últimamente me he visto obligado a reinstalar varias veces varios sistemas operativos. Bueno quizá no tan obligado, ha sido por gusto mayormente...

El caso es que cuando te encuentras en esta situación, volver a instalar todos los paquetes que usas en el día a día puede resultar engorroso, ya que a veces no los recuerdas todos, sobre todo si son paquetes del sistema que los instalas y te olvidas de ellos, como drivers o cosas así.

Para ello, he ideado un sencillo método, que es poner los nombres de los paquetes en un fichero de texto, uno en cada línea. Por ejemplo, supongamos que guardo esto literalmente en el fichero ~/configuracion-linux/paquetes-iniciales.txt:

nano
gedit
firefox
iceweasel
chromium-browser
kmod-nvidia
inkscape
gimp
libreoffice-writer

Si me toca reinstalar el sistema, independientemente del método de empaquetado que use la distribución, puedo recuperar esta lista con este comando:

$ cat ~/configuracion-linux/paquetes-iniciales.txt | tr '\n' ' '

Lo que hace es simplemente leer el fichero y sustituir la separación de filas por separación de espacios.

Supongamos que el sistema que he reinstalado es Fedora y quiero recuperar todos los paquetes que eran importantes para mí de un plumazo, más aparte instalar un juego que he visto que me apetece jugar:

# yum install $(cat ~/configuracion-linux/paquetes-iniciales.txt | tr '\n' ' ') beneath-a-steel-sky-cd

Al englobar el comando dentro del $() lo que hace es leer el STDOUT de dicho comando y transformarlo en texto que puedes usar dentro de otro. En pocas palabras, transformaría el comando de arriba en:

# yum install nano gedit firefox iceweasel chromium-browser kmod-nvidia inkscape gimp libreoffice-writer beneath-a-steel-sky-cd 

Como ves, he añadido al final el juego beneath-a-steel-sky-cd, simplemente a modo demostrativo de un caso en que quizá te interese instalar ese juego al instalar el nuevo sistema sin necesidad de añadirlo a tu fichero de paquetes que querrás instalar siempre, porque una vez te lo pases no te hará falta.

De hecho, puedes tener un fichero que se llame iniciales-instalar.txt y otro que sea iniciales-eliminar.txt, si tu distribución trae paquetes que no te interesa mantener instalados.

Por cierto, habrás notado que arriba he puesto tanto Firefox como Iceweasel en la lista. Bueno, esto es porque simplemente lo normal es que el gestor de paquetes ignore los que no existen, por tanto, en Debian instalaría Iceweasel e ignoraría Firefox, y en muchas otras sería al contrario.