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

8

Estou no Debian e quero reparticionar 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 criando 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 deveria ser capaz de fazer:

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

Existe uma maneira melhor de fazer isso?

    
por nyxgeek 09.12.2013 / 08:11

2 respostas

7

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

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

Depois de reinstalar, execute isto:

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

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

Para mais informações, consulte o wiki: link

    
por 09.12.2013 / 08:36
3

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

Isso perde informações sobre pacotes manuais vs. 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 sabe sobre pacotes instalados automaticamente, apenas o apt faz.

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 rotativo de copiar a lista de pacotes instalados e, em seguida, restaurar a lista de pacotes marcados como automáticos. Para fazer o backup:

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

Para restaurar:

dpkg --set-selections <selections.txt
apt-get dselect-upgrade
apt-mark markauto $(cat automatic.txt)
    
por 10.12.2013 / 04:00