Como corrigir atualizações sinápticas quebradas: “O pacote está em um estado inconsistente muito ruim”

15

Eu tenho um Dell Mini9 executando o Ubuntu 8.10. Um dia tive a brilhante ideia de ver se poderia instalar uma pilha LAMP. Eu tive problemas para instalar o MySQL 5.0. Não me lembro do erro, mas desde que todas as tentativas de executar update-manager, synaptic ou apt-get falham com um erro sobre o mysql-server-5.0: "O pacote está em um estado inconsistente muito ruim".

Eu tentei apt-get remove mysql-server-5.0 e também install , mas sem sorte. Ambos falham com o mesmo erro abaixo. Como posso consertar isso?

$ sudo apt-get remove mysql-server-5.0
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  dhcdbd libisc32
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  mysql-server-5.0
0 upgraded, 0 newly installed, 1 to remove and 164 not upgraded.
1 not fully installed or removed.
After this operation, 85.4MB disk space will be freed.
Do you want to continue [Y/n]? 
dpkg: error processing mysql-server-5.0 (--remove):
 Package is in a very bad inconsistent state - you should
 reinstall it before attempting a removal.
Errors were encountered while processing:
 mysql-server-5.0
E: Sub-process /usr/bin/dpkg returned an error code (1)
    
por spoulson 13.08.2009 / 05:18

7 respostas

19

Nenhuma das outras respostas funcionou para mim no Maverick.

No meu caso, achei que funcionou:

sudo rm /var/lib/dpkg/info/flashplugin-nonfree.prerm

sudo dpkg --remove --force-remove-reinstreq flashplugin-nonfree

(substituindo "flashplugin-nonfree" pelo nome do pacote quebrado, e substituindo "prerm" pelo tipo de script que falhou - no meu caso era "postrm", o script de pós-remoção).

E eles dizem que o Ubuntu é fácil de usar !! resmungar resmungar

    
por 14.11.2010 / 18:15
6

Eu tive exatamente o mesmo problema com uma instalação do mysql. Você precisa limpar o pacote. Simplesmente remover um pacote não remove os arquivos de configuração que o acompanham.

Além disso, vou me referir ao mysql-server-5.0 , mas percebo que há um pacote de wrapper mysql-server que sempre aponta para a versão mais recente. isto é, se você pedir para instalar o mysql-server , o apt-get deve dizer que depende do mysql-server-5.0 e instalar ambos. Se você tiver o pacote mysql-server no sistema, você deve certificar-se de que ele foi removido antes de tentar reinstalá-lo.

  • Certifique-se de que o servidor mysql (mysqld) não esteja sendo executado. Se for, traga abaixo:

    sudo /etc/init.d/mysqld stop

  • Verifique se algum pacote depende do mysql-server-5.0:

    sudo apt-cache rdepends mysql-server-5.0

    Se o fizerem, você precisará usar a opção - force para desinstalar.

  • Purgue o pacote (inclua a opção - force , dependendo do item # 2)

    sudo apt-get --purge remove --force mysql-server-5.0

  • Certifique-se de que os arquivos do instalador também estejam limpos, executando

    sudo apt-get autoclean
    sudo apt-get autoremove

  • Instale o pacote do servidor novamente

    sudo apt-get install mysql-server-5.0

Isso deve resolver seu problema. No entanto, o pacote ainda pode estar quebrado, se você fez alterações nos arquivos que vieram do pacote mysql-common .

mysql-common é o pacote base usado pelos componentes cliente e servidor. Se as coisas ainda não estiverem funcionando, tente reinstalar este pacote. Definitivamente haverá pacotes que dependem disso; verifique usando # 2 acima. Remova o mysql-server antes de reinstalar o mysql-common . Além disso, não esqueça de reinstalar o mysql-common , senão o seu sistema estará muito quebrado.

    
por 13.08.2009 / 10:23
1

Você pode querer dar ao aptitude a try, que tem melhor manuseio de dependências:

sudo aptitude remove mysql-server-5.0
    
por 13.08.2009 / 08:16
0

Tente

sudo dpkg -i reconfigure mysql-server-5.0
sudo apt-get remove --force mysql-server-5.0

Se este for outro pacote que está quebrado, tente apt-get remove --force desse pacote também.

    
por 13.08.2009 / 05:58
0

O erro dpkg que você possui sugere que o problema ocorre quando dpkg está tentando remover o pacote. (No final do dia, apt-get e Synaptic e similares saem do trabalho real para dpkg .)

Você já tentou fazer exatamente o que a mensagem diz e re - instalar primeiro?

%pr_e%

Por mais bobo que pareça, se dpkg estiver sufocando durante o processo de remoção (porque algum arquivo que ele deveria remover desapareceu nesse ínterim), então reinstalar e então remover algumas vezes pode ajudar . Certifique-se de que mysql não esteja em execução antes de tentar instalá-lo ou removê-lo, como nagul sugere .

    
por 13.08.2009 / 10:48
0

dpkg -r --force-remove-reinstreq <package> remove um pacote sem verificar se requer reinstalação.

Depois disso, você poderá reinstalar o pacote com o gerenciador de pacotes preferido.

    
por 30.01.2012 / 12:24
0

Eu tive esse problema com o mailman. Excluído /etc/init.d/mailman com

rm /etc/init.d/mailman

consertou:

    
por 16.04.2014 / 05:04