Reinstalando todos os pacotes Debian
Eu matei por engano um processo do dpkg em execução em segundo plano e gostaria de reinstalar todos os pacotes para garantir que tudo esteja bem.
Primeiro, tentei obter uma lista de todos os pacotes e reinstalá-los
Mas existem mensagens como:
Eu tentei apt-get -f install, sem sucesso.
Como último recurso, reinstalei todos os programas que falharam nas somas de verificação:
O que devo fazer para reinstalar tudo?
Edit: Problema resolvido. A questão era outra coisa (veja os comentários). Eu entendo que é algo a evitar com o Debian.
— alex_reader
Recentemente, tive uma falha ao tentar instalar um pacote. Quando reiniciei e tentei reinstalar o pacote, recebi a mensagem "E: dpkg foi interrompido, você deve executar manualmente 'dpkg --configure -a' para corrigir o problema.". A execução desse comando removeu o referido pacote e os arquivos de configuração. Pude instalar o pacote a partir do zero. Tente dar esse comando.
Não fez nada, então acho que nada está quebrado. Tentarei mais tarde verificar se meus problemas de driver foram resolvidos.
— 22913 alex_reader
Reinstalar todos os pacotes == péssima idéia. (a) É quase sempre desnecessário (b) provavelmente irá falhar (c) Se o seu sistema estiver realmente tão desarrumado, basta reinstalá-lo. Basta corrigir os problemas que você realmente vê.
Tente isso, lembrando que eu não testei:
Meu problema era completamente diferente: eu não estava inicializando o kernel correto (!). Aceitarei sua resposta, pois parece fazer o que eu queria (mas também não foi testado).
Isso não funcionará e quebrará completamente o sistema. A linha 3 desinstalará o apt, portanto não será possível reinstalar tudo depois.
@rkjnsn: Atualizei a resposta, verifique se funciona.
Tentando fazer isso, nada está sendo reinstalado, embora o arquivo de seleções esteja preenchido: pi @ prodpi ~ $ sudo apt-get --reinstall dselect-upgrade Lendo listas de pacotes ... Concluído Criando árvore de dependência Lendo informações de estado ... Concluído 0 atualizado , 0 recém-instalado, 0 para remover e 0 não atualizado. qualquer ideia?
Uma razão pela qual acho que seu código não funcionará é porque a dpkg --get-selectionslista de comandos também desinstala os pacotes.
Apenas no caso, tente reinstalar cada pacote :
Você também pode adicionar a resposta sim a todas as perguntas.
cat: list.log: Esse arquivo ou diretório não
@IgorGanapolsky Execute dpkg --get-selections > list.logprimeiro.
list.logé retirado da pergunta.
Em um dos recursos citados por Lucas Malor, encontrei um script chamado populator que parece estar próximo da solução. Se você definir a variável de seleção de pacotes na lista de todos os seus pacotes
você pode executar o script e reinstalar todos os pacotes, mas o sistema provavelmente terá alguns problemas. Seria melhor testá-lo em uma máquina virtual primeiro.
Aqui está uma variante do script no link acima:
Se for mostrado um erro de que pacotes específicos não podem ser reinstalados, execute este comando para tentar novamente:
Tente fazer isso, pois ele pegará sua saída e criará uma linha gigante com espaços que separam os nomes dos arquivos.
A única alteração na postagem original é adicionar a segunda declaração do awk, que provavelmente poderia ser feita em linha com a primeira para criar o arquivo desejado.
Essa alteração forçará o apt-get a baixar novamente novamente os pacotes e todas as dependências ausentes que não foram instaladas na primeira vez e os reinstalará em ordem.
Se o fizermos em linha, acredito que ficaria assim:
E certifique-se de realmente garantir que o sistema tenha pacotes corretos (ou mais recentes), limpe o cache apt, atualize-o e faça o download novamente de todos os arquivos (você pode pular as duas primeiras etapas se quiser apenas o que possui no cache reinstalado):
Eu tinha mais de 2k pacotes instalados em um sistema que atualizei com um problema. O uso do dpkg --configure -a concluiu a instalação (estava na fase final). Eu executei isso para fazer tudo reinstalar corretamente.
Ou conforme indicado em /superuser/298912/reinstall-debian- while-keeping-installed-packages- and-data :
Apenas certifique-se de executar um "init 2" antes de qualquer reinstalação, pois alguns componentes do X ou do seu gerenciador de janelas favorito podem não gostar de ser reinstalados.
A menos que você tenha modificado o IFS, o $(cat file)token não citado em qualquer espaço em branco e fornece exatamente o mesmo resultado, independentemente de o arquivo ser delimitado por novas linhas ou espaços. --reinstallpode ajudar, mas já foi administrado duas vezes antes disso.
Ao usar o Aptitude, há uma maneira fácil e rápida de fazer isso:
que reinstalará todos os pacotes atualmente instalados.
Ao usar o RPM, no caso de você causar uma corrupção no banco de dados do pacote, existe uma opção para reconstruir esse banco de dados, impedindo que você precise passar basicamente por uma reinstalação. Como um usuário aqui apontou, isso é feito no Debian by dpkg --configure -a.
A função de dpkg --configure -aé configurar todos os pacotes descompactados e não configurados. Veja as páginas de manual do dpkge dpkg-reconfiguretambém debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html