Não é possível atualizar a libc6 no Debian

0

Eu tentei atualizar um sistema meu, com o qual eu não tive nenhum problema, e tive problemas ao executar um upgrade completo do aptitude . A atualização foi executada normalmente até que recebi este erro:

 Preparing to replace libc6 2.13-21 (using .../libc6_2.13-24_amd64.deb) ...

A copy of the C library was found in an unexpected directory:
  '/lib/ld-2.11.2.so'
It is not safe to upgrade the C library in this situation;
please remove that copy of the C library or get it out of
'/lib' and try again.

dpkg: error processing /var/cache/apt/archives/libc6_2.13-24_amd64.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
configured to not write apport reports
                                      Errors were encountered while processing:
 /var/cache/apt/archives/libc6_2.13-24_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
dpkg: dependency problems prevent configuration of libc6-dev:
 libc6-dev depends on libc6 (= 2.13-24); however:
  Version of libc6 on system is 2.13-21.
dpkg: error processing libc6-dev (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libc6-i386:
 libc6-i386 depends on libc6 (= 2.13-24); however:
  Version of libc6 on system is 2.13-21.
dpkg: error processing libc6-i386 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 libc6-dev
 libc6-i386

A qualquer momento, agora que tento atualizar ou instalar qualquer pacote, recebo esse erro. Qualquer tentativa de mover arquivos exigia que apenas mais arquivos fossem movidos. Eu também não consegui corrigir com o dpkg.

Algumas informações:

Debian Linux 3.1.0-1-amd64
#dpkg -l | grep libc6
ii  libc6                                2.13-21                       
iU  libc6-dev                            2.13-24                        
iU  libc6-i386                           2.13-24    

Obrigado!

    
por cete3 10.01.2012 / 20:38

2 respostas

1

Após a resposta do comentário ...

Comece verificando que quando você executa um programa, obtém uma cópia do vinculador dinâmico que não envolve esse caminho. Você deveria ver:

$ ldd /bin/ls | grep ld-linux
    /lib64/ld-linux-x86-64.so.2 (0x00007fc695aef000)

(O endereço hexadecimal pode ser diferente.) Esse arquivo deve ser um link simbólico apontando para /lib/x86_64-linux-gnu/ld-2.13.so , o que não deve ser um link simbólico e certamente não deve acabar em ld-2.11.2.so .

Assumindo que tudo isso parece certo, deve ser seguro prosseguir e renomear /lib/ld-2.11.2.so para fora do caminho (apesar de que eu teria a mídia de resgate para entregar, no entanto). Não o exclua até que você tenha certeza de que tudo ainda está OK, caso você precise devolvê-lo!

Você pode encontrar reclamações sobre outros arquivos restantes, que podem ser verificados e tratados da mesma maneira.

Obviamente, este conselho não é testado diretamente!

    
por 15.01.2012 / 18:10
1

Eu tive esse problema. . .finalmente fixado por

  1. fazendo chroot no sistema danificado / paralisado, onde eu
  2. variou um monte de lib.so para fora da lib / i38 em uma pasta temporária naquela partição / root e
  3. criando links simbólicos para cada um deles. Neste ponto, tornou-se possível
  4. inicialize nessa partição e, em seguida,
  5. faça upgrade como de costume. (A lista exata de arquivos não vem à mente e, de qualquer maneira, provavelmente variará de sistema para sistema - incluiu a biblioteca GNU-threads lib e alguns outros, cada um dos quais levantou a dreaded-lib na mensagem de localização inesperada) Após a atualização, as novas libs estarão no usual / lib / i386 (ou seu equivalente) e a inicialização da dependência LSB terá criado links simbólicos para você. Quando estiver satisfeito de que tudo está bem, você pode destruir a pasta temp e o .so é movido para lá antes. Espero que isso possa ajudar ...
por 02.06.2012 / 19:12