¿Reinstalar aplicaciones después de una nueva instalación?

8

Estoy en Debian y quiero volver a particionar mi disco y reinstalarlo. ¿Existe una manera fácil de restaurar todos los paquetes instalados actualmente después de una nueva instalación?

Estoy pensando en hacerlo haciendo una lista de aplicaciones de respaldo:

#generate list of installed packages
dpkg -l | awk '{ print $2 }' ORS="\n" | tail -n +6 > reinstallList.txt

y luego, después de hacer una nueva instalación, debería poder hacer:

#install from backup at reinstallList.txt
sudo apt-get  install $(< reinstallList.txt)

¿Hay una mejor manera de hacer esto?

nyxgeek
fuente
1
No olvide hacer una copia de seguridad de / etc para que pueda restaurar fácilmente la configuración de esos paquetes.
Anthon

Respuestas:

7

Según el wiki de Debian , debe ejecutar este comando antes de la reinstalación:

dpkg --get-selections > /backup/installed-software.log

Luego, después de reinstalar, ejecute esto:

dpkg --set-selections < /backup/installed-software.log
apt-get dselect-upgrade

Obviamente, debe reemplazarlo /backup/installed-software.logcon el nombre de algún archivo que pueda conservar durante el proceso de reinstalación. Ponerlo en una memoria USB sería bueno.

Para obtener más información, consulte el wiki: https://wiki.debian.org/ListInstalledPackages

John1024
fuente
He usado este método muchas veces.
bahamat
¡Perfecto! Esto es exactamente lo que estaba buscando. ¡Gracias!
nyxgeek
3

dpkg -lenumera todos los paquetes instalados (en la lista cuando lo filtra correctamente). Puede obtener la misma lista con dpkg --get-selections(que no requiere más filtrado).

Esto pierde información sobre los paquetes instalados manualmente o los que se instalan automáticamente. Es muy conveniente tener bibliotecas y otros paquetes marcados como solo necesarios indirectamente. Los paquetes marcados como instalados automáticamente se pueden quitar o reemplazar por diferentes paquetes sin problemas. Dpkg no sabe acerca de los paquetes instalados automáticamente, solo apt lo sabe.

Para enumerar los paquetes instalados manualmente, puede usar aptitude:

aptitude search -F %p '~i !~M' >reinstallList.txt

Sin aptitud, es un poco más complicado.

dpkg --get-selections | awk '$2 == "install" {print $1}' >installed.txt
apt-mark showauto >automatic.txt
comm -32 installed.txt automatic.txt >reinstallList.txt

Para instalar todos los paquetes que se instalaron anteriormente:

apt-get install $(cat reinstallList.txt)

Alternativamente, puede utilizar el método más indirecto de copiar la lista de paquetes instalados y luego restaurar la lista de paquetes marcados como automáticos. Hacer copias de seguridad:

dpkg --get-selections >selections.txt
apt-mark showauto >automatic.txt

Restaurar:

dpkg --set-selections <selections.txt
apt-get dselect-upgrade
apt-mark markauto $(cat automatic.txt)
Gilles 'SO- deja de ser malvado'
fuente