O Aptitude deletou um buttload de módulos quando tentei instalar o Imagemagick, como faço para desfazer isso?

1

Ontem tentei instalar o Imagemagick, usei apt-get no começo, o que gerou um erro. Eu já estava tentando instalar o ImageMagick por horas, então fiquei impaciente. Uma postagem no stackoverflow dizia que, se apt-get não funcionasse, eu poderia tentar usar aptitude . Então eu fiz. E foi aí que tudo começou a desmoronar. Aptitude começou a remover um monte de módulos. Eu pensei que isso fazia parte do processo. Então agora mesmo:

  • o apache2 não inicia
  • o nginx não roda, não consigo executar o plesk
  • meu servidor de e-mail não funciona mais, pois o plesk também não funciona

Existe alguma maneira de reverter isso? Existe alguma maneira de evitar isso no futuro? Eu esperava que o comportamento do aptitude fosse o mesmo que o apt-get.

    
por Rizky Fakkel 19.04.2016 / 15:45

1 resposta

2

Tanto apt-get como aptitude são front-ends convenientes para o comando dpkg subjacente, o sistema de pacotes Debian. Eles (pre-) tratam de coisas como dependência e resolução de conflitos e download de pacotes, antes de invocar dpkg com instruções explícitas para instalar arquivos * .deb baixados, ou para remover pacotes e sua dependência, ou para (des) configurá-los automaticamente ou o que não ...

Você provavelmente pediu a aptitude para forçar a instalação de um determinado pacote. Sua resolução de conflitos entrou em vigor e forçou a remoção de pacotes conflitantes, quebrando outros pacotes. Presumivelmente, a resolução da dependência encontrou certas dependências que precisam ser instaladas em uma versão ou arquitetura específica, que não pode coexistir com as já instaladas. Certas coisas simplesmente não funcionam, mas desde que você pediu para forçar a instalação ... bem, você conseguiu o que pediu.

Aqui é onde você pode encontrar informações úteis sobre o histórico de pacotes e o estado do seu sistema. Use less <log-file> (ou zless <compressed-log-file> ) para ler esses arquivos.

  • Em /var/log/apt/history.log* você pode ver o histórico de comandos de apt-get e as resoluções que ele criou para suas solicitações / comandos.
  • Em /var/log/apt/term.log* você pode ver a saída de tais solicitações / comandos.
  • Em /var/log/aptitude* , você verá algumas atividades de aptidões.
  • Em /var/log/dpkg.log* você pode ver o que aconteceu com o status dos pacotes individuais.

dpkg -l listará todos os pacotes em seu sistema e seus status, incluindo o status de pacotes previamente instalados (ou seja, pacotes "removidos"). O cabeçalho da lista (ou man dpkg ) informará o significado das letras na primeira coluna. A primeira letra lhe dirá qual status você / apt-get / aptitude solicitou para um pacote. O segundo informará o status no qual o pacote está atualmente. Se houver uma terceira letra R , esse pacote precisará ser reinstalado. dpkg -l | grep -v "^ii" listará os mesmos pacotes excluindo aqueles "atualmente instalados conforme solicitado", o que pode ajudar a restringir seus pacotes "removido" ou "meio configurado" ou "parcialmente instalado". Se você adicionar | less ao pipeline de comando, poderá rolar a saída.

O que você quer fazer agora é descobrir quais pacotes foram removidos e por quê. A parte "por que" é presumivelmente como mencionada acima e não pode ser facilmente contornada. Então, você provavelmente deseja remover / limpar sua imagemagick primeiro (do apt-get remove <the-offending-package> , então continue com apt-get autoremove ou apt-get remove <other-packages> para remover suas dependências, que não são mais necessárias; CUIDADOSAMENTE adicione --purge a qualquer comando se você quiser para remover arquivos de configuração também).

Então você pode reinstalar os pacotes perdidos. Ou melhor, você quer forçar a reinstalação dos principais pacotes quebrados nos quais está interessado e fazer com que o apt-get / aptitude instale automaticamente as antigas dependências no caminho, como de costume. Dessa forma, dependências lib * triviais não serão marcadas como "instaladas manualmente", o que impediria a remoção automática no futuro, se necessário.

Para reinstalar um pacote: apt-get install <package> , opcionalmente, inclua --reinstall para re-descompactar pacotes explicitamente, se necessário.

Além disso, você pode dar uma olhada em man apt-get e man aptitude para ter uma ideia sobre suas opções.

Boa sorte!

    
por 19.04.2016 / 18:27