Não foi possível instalar nenhuma atualização através do gerenciador de atualização / apt-get upgrade

12

Estou executando o Ubuntu 12.04 nas últimas semanas. Recentemente, tentei baixar e instalar alguns arquivos por meio do Update Manager. Ele localizou alguns arquivos, baixou-os, mas falhou ao instalá-los. Deu o erro:

installArchives() failed: (Reading database ... 
(Reading database ... 80%
dpkg: unrecoverable fatal error, aborting:
 reading files list for package 'libasn1-8-heimdal': Input/output error

Eu tentei usar, apt-get upgrademas um erro semelhante foi produzido:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  icedtea-6-jre-cacao icedtea-6-jre-jamvm openjdk-6-jre openjdk-6-jre-headless
  openjdk-6-jre-lib
5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/34.6 MB of archives.
After this operation, 1,024 B of additional disk space will be used.
Do you want to continue [Y/n]? y
(Reading database ... 80%
dpkg: unrecoverable fatal error, aborting:
 reading files list for package 'libasn1-8-heimdal': Input/output error
E: Sub-process /usr/bin/dpkg returned an error code (2)

Qualquer ajuda seria muito apreciada. Desde já, obrigado.

Editar: Aqui estão algumas informações extras que podem ser úteis. Meu problema original era que o Ubuntu Software Center não era aberto. Descobri que o Update Manager e o Synaptic Package Manager também não foram abertos. Todos eles deram um erro ao longo das linhas de:

"installArchives() failed: dpkg: error: reading package info file '/var/lib/dpkg/available': Input/output errorError in function:"

Depois de muita pesquisa, pareci corrigir o problema, já que os gerenciadores de pacotes se abriam novamente. Quando tentei baixar e instalar as atualizações do Gerenciador de Atualizações, recebi o erro no início desta postagem.

user64654
fonte
Quais arquivos você baixou? De onde? O que o gerenciador de atualizações tem a ver com isso?
Mikewhatever
Você pode tentar desinstalar (e reinstalar posteriormente) o pacote na mensagem. Se isso falhar, você pode tentar limpar o cache.
John S Gruber
Ainda estou trabalhando para consertar isso, mas ainda não tive a chance. Vou tentar as instruções fornecidas aqui: goo.gl/oOKqG quando tiver a chance.
User64654
Por que você escolheu instalar o 12.04 e não o 14.04? Afinal, você disse que conseguiu algumas semanas atrás, e Trusty está fora há nove meses.
John Scott

Respostas:

16

Corrigi o problema com estas instruções .

Portanto, a solução é a seguinte:

  1. Vá para o /var/lib/dpkgdiretório
  2. Faça um backup do statusarquivo
  3. Edite o statusarquivo
  4. Pesquise o pacote que deu o erro
  5. Apenas exclua as linhas deste pacote (mas deixe todas as outras linhas que dizem respeito a outros pacotes, mesmo que contenham o pacote quebrado nos campos "Substitui" ou "Depende")

    [...]

  6. Salve as alterações no statusarquivo

  7. Corre: sudo dpkg --configure -a
  8. Forçar a reinstalação de dependências ausentes (porque agora existem algumas):

    sudo apt-get -f install
    

    Eu acho que se o pacote quebrado não depender de nenhum outro pacote (pode ser raro), basta reinstalá-lo:

    sudo apt-get install the_package
    
  9. Tudo bem agora pode atualizar, atualizar ou instalar novos pacotes!

Deve-se notar que eu tinha algumas diferenças na solução dada lá. O arquivo de status não foi fácil de editar (pois é um arquivo importante e nunca foi criado para ser editado). Todas as edições feitas lá devem ser feitas com cuidado e o backup do arquivo deve ser feito antes que você faça alterações.

Eu tive que repetir as etapas 4-8 três vezes (cada vez que o erro seria o mesmo apenas com um pacote diferente). Finalmente, quando todos os pacotes foram removidos, fui capaz de reinstalá-los e o problema foi resolvido.

user64654
fonte
Como você descobriu quais pacotes causaram o erro?
Seanny123
@ Seanny123 a tentativa anterior de instalação do apt-get provavelmente mostraria o erro. Por exemplo, no meu caso, tenho "lendo a lista de arquivos do pacote 'manpages-dev': Erro de entrada / saída" pouco antes do retorno do prompt. No arquivo de status, procurei "Package: manpages-dev" e excluí as linhas até a próxima linha "Package:". Depois disso, tive que fazer um manual "apt-get install manpages-dev" e depois o meu "apt-get dist-upgrade" anteriormente com falha foi concluído sem erros. (Graças user64654!)
Peter Hansen
2

Pode acontecer que o disco esteja corrompido com inodes.

Com um CD ao vivo, execute este comando

sudo fdisk -l

observe o disco e a partição, ele poderá ser /dev/dsb1 reparado:

sudo fsck -y /dev/sdb1

Reinicialize e retorne ao sistema

sudo apt-get -f install
sudo apt-get update
sudo apt-get upgrade
Guillaume
fonte
Eu fiz o fsck via sudo shutdown -rF nowe, sem mais nada, estava tudo bem novamente.
Klaws