Como reinstalar muitos pacotes removidos de uma só vez?

8

Eu usei o comando sudo apt-get remove python e acidentalmente removi vários pacotes que eram necessários. Eu entrei via linha de comando e instalei o ubuntu-desktop novamente, mas há outros pacotes que estão faltando, e estou procurando uma maneira de reinstalar facilmente os pacotes removidos. Como há o log no software-center, eu queria perguntar qual seria a maneira mais fácil de reverter as alterações ou extrair a lista de pacotes removidos do centro de software ...

note: Eu digitei sudo apt-get install .... .... ... ... para cerca de duas dúzias dos programas removidos naquela lista, mas quando eu pressionei enter ele não instalou nenhum deles porque alguns nomes de pacotes não puderam ser encontrados.

Os programas foram removidos na mesma data.

    
por Logan 26.06.2011 / 14:22

2 respostas

15

Primeiro de tudo, deixe-me dizer que remover python pode levar a muitos comandos fundamentais que não funcionam mais. Então, eu não sabia se o que segue funcionaria.

Em segundo lugar, presumo que o erro package names couldn't be found que você tem deriva de um nome incorreto na linha de comando ou de um pacote instalado localmente e não está disponível nos repositórios.

Em seguida, para obter um log de pacotes removidos, relativamente ao último dpkg log disponível (não acho que você precise levar em consideração logs mais antigos):

awk ' == "remove" { print , ,  }' /var/log/dpkg.log | tee list

Em seguida, edite o arquivo list criado no diretório atual e apenas deixe linhas relativas aos pacotes que você deseja reinstalar, com base no registro de data e hora da linha. Digamos que você salve o arquivo modificado em list-mod .

Para reinstalar esses pacotes, use o seguinte comando:

sudo apt-get --simulate install $(awk '{ print  }' list-mod)

Inseri a opção --simulate para ver o que o comando faria. Se estiver tudo ok, faça o comando novamente com essa opção removida.

Se o comando disser que alguns pacotes não podem ser encontrados, simplesmente remova-os de list-mod e tente novamente.

    
por enzotib 26.06.2011 / 14:49
2

Então, acontece um erro semelhante: sudo apt-get purge python3.6* em vez de sudo apt-get purge python3.6.* .

Consegui corrigi-lo rapidamente, com os seguintes passos:

  1. abriu o log vim /var/log/history.log .
  2. Procurei pelo meu comando ruim usando o comando vim /python3.6\* .
  3. Havia uma linha Purge: unity-control-center-signon:amd64 (0.1.7~+14.04.20140211.2-0ubuntu4), ... com uma longa lista de pacotes removidos (no caso de remoção, ela começa com Remove: ), que copiei para outro arquivo sem a parte Purge: para trabalhar com ela.
  4. Nesse arquivo, executei o comando vim: %s/:[^,]*,//g , que removeu a parte da versão e me deixou uma lista de pacotes unity-control-center-signon lxc ... .
  5. Por fim, copiei uma linha da etapa anterior e executei: sudo apt-get install unity-control-center-signon lxc ... e foi assim que foi corrigido.
por Nikita 29.03.2017 / 15:29