Reinstalla app dopo una nuova installazione?


8

Sono su Debian e voglio ripartizionare il mio disco e reinstallarlo. C'è un modo semplice per ripristinare tutti i pacchetti attualmente installati dopo una nuova installazione?

Sto pensando di farlo creando un elenco di app di backup:

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

e dopo aver fatto una nuova installazione dovrei essere in grado di fare:

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

C'è un modo migliore per farlo?


1
Non dimenticare di fare un backup di / etc in modo da poter ripristinare facilmente le impostazioni di configurazione per quei pacchetti.
Anthon,

Risposte:


7

Secondo il wiki Debian , dovresti eseguire questo comando prima della reinstallazione:

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

Quindi, dopo la reinstallazione, esegui questo:

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

Ovviamente, è necessario sostituire /backup/installed-software.logcon il nome di alcuni file che è possibile conservare durante il processo di reinstallazione. Metterlo su una chiavetta sarebbe buono.

Per ulteriori informazioni, consultare il wiki: https://wiki.debian.org/ListInstalledPackages


Ho usato questo metodo molte volte.
bahamat,

Perfetto! Questo e 'esattamente quello che stavo cercando. Grazie!
nyxgeek il

3

dpkg -lelenca tutti i pacchetti installati (all'elenco quando lo filtri correttamente). Puoi ottenere lo stesso elenco con dpkg --get-selections(che non richiede ulteriori filtri).

Ciò perde informazioni sui pacchetti installati manualmente o installati automaticamente. È molto comodo avere librerie e altri pacchetti contrassegnati come solo indirettamente necessari. I pacchetti contrassegnati come installati automaticamente possono essere rimossi o sostituiti da pacchetti diversi senza problemi. Dpkg non conosce i pacchetti installati automaticamente, solo apt lo fa.

Per elencare i pacchetti installati manualmente, è possibile utilizzare aptitude:

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

Senza attitudine, è un po 'più complicato.

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

Per installare tutti i pacchetti precedentemente installati:

apt-get install $(cat reinstallList.txt)

In alternativa, è possibile utilizzare il metodo più circolare per copiare l'elenco dei pacchetti installati e quindi ripristinare l'elenco dei pacchetti contrassegnati come automatici. Per eseguire il backup:

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

Ripristinare:

dpkg --set-selections <selections.txt
apt-get dselect-upgrade
apt-mark markauto $(cat automatic.txt)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.