Reinstalar aplicativos após uma nova instalação?

8

Estou no Debian e quero re-particionar minha unidade e reinstalar. Existe uma maneira fácil de restaurar todos os pacotes atualmente instalados após uma nova instalação?

Estou pensando em fazer isso fazendo uma lista de aplicativos de backup:

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

e depois de fazer uma nova instalação, eu devo ser capaz de:

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

Existe um jeito melhor de fazer isso?

Nyxgeek
fonte
1
Não se esqueça de fazer um backup do / etc para restaurar facilmente as configurações desses pacotes.
Anthon

Respostas:

7

De acordo com o wiki Debian , você deve executar este comando antes da reinstalação:

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

Em seguida, após a reinstalação, execute o seguinte:

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

Obviamente, você deve substituir /backup/installed-software.logo nome de algum arquivo que possa manter durante o processo de reinstalação. Colocá-lo em um pen drive seria bom.

Para mais informações, consulte o wiki: https://wiki.debian.org/ListInstalledPackages

John1024
fonte
Eu usei esse método várias vezes.
bahamat
Perfeito! Era exatamente isso que eu estava procurando. Obrigado!
Nyxgeek
3

dpkg -llista todos os pacotes instalados (na lista quando você o filtra corretamente). Você pode obter a mesma lista com dpkg --get-selections(que não requer filtragem adicional).

Isso perde informações sobre pacotes manualmente versus pacotes instalados automaticamente. É muito conveniente ter bibliotecas e outros pacotes marcados como apenas indiretamente necessários. Pacotes marcados como instalados automaticamente podem ser removidos ou substituídos por pacotes diferentes sem problemas. O Dpkg não conhece pacotes instalados automaticamente, apenas o apt.

Para listar os pacotes instalados manualmente, você pode usar o aptitude:

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

Sem aptidão, é um pouco mais 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 os pacotes que foram instalados anteriormente:

apt-get install $(cat reinstallList.txt)

Como alternativa, você pode usar o método mais indireto de copiar a lista de pacotes instalados e restaurar a lista de pacotes marcados como automáticos. Para fazer backup:

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- parar de ser mau'
fonte