Não é possível instalar nenhum pacote devido a um erro fatal irrecuperável / var / lib / dpkg / diversions

3

Atualmente, não consigo instalar nenhum pacote. Eu recebo o seguinte erro:

 dpkg: unrecoverable fatal error, aborting:
 too-long line or missing newline in '/var/lib/dpkg/diversions

Eu tentei várias abordagens:

sudo dpkg --configure -a   
sudo apt-get clean
sudo dpkg-divert --list 
sudo apt-get check  
sudo apt-get install -f

Mas tudo em vão. Ou a saída estava aparentemente normal ou o erro acima foi lançado.

Estou perplexo sobre como proceder e gostaria de receber ajuda. Se qualquer informação adicional for necessária, basta perguntar.

Obrigado pela resposta. Eu segui as sugestões e agora estou recebendo um erro diferente:

(Lendo banco de dados ... 50% dpkg: erro fatal irrecuperável, abortando:  arquivo de lista de arquivos para o pacote 'libksane0' está faltando newline final E: Subprocesso / usr / bin / dpkg retornou um código de erro (2)

Aqui está o link para as diversões atuais: link e o antigo quebrado: link

Eu tentei reinstalar libksane0 , mas ocorreu o mesmo erro.

    
por gforces 31.01.2012 / 01:24

2 respostas

2

Eu sei que é muito tarde, mas outras pessoas podem achar isso útil. A mesma mensagem de erro com um arquivo diferente apareceu no Kali (Debian-Variant) e a melhor solução que encontrei foi copiar o arquivo errôneo de uma cópia ainda ativa do Kali. Problema resolvido.

    
por user857990 10.10.2013 / 08:48
1

Primeiro, faça o backup de / var / lib / dpkg / diversions e / var / lib / dpkg / diversions-old, apenas no caso.

Em seguida, tente copiar / var / lib / dpkg / diversions-old em cima de / var / lib / dpkg / diversions:

cd /var/lib/dpkg
mv diversions diversions.broken
cp diversions-old diversions

Agora o dpkg deve poder funcionar novamente, mas é possível que seu banco de dados de desvios esteja incompleto. Reinstalar ( apt-get install --reinstall packagename ) os pacotes afetados pode ser uma boa maneira de restaurar isso; A pergunta é: como você pode identificar quais pacotes foram afetados? Comparar o conteúdo de diversões. O tempo partido e diversões antigas ( diff -u diversions-old diversions.broken ) é unidirecional; procurando em /var/log/dpkg.log por uma lista de pacotes atualizados recentemente e reinstalá-los apenas no caso de outro. Também é possível que nada de ruim aconteça se você tiver um banco de dados de diversões um pouco desatualizado; tudo depende do que exatamente está nesses arquivos.

    
por Marius Gedminas 31.01.2012 / 01:42