apt-get falha de atualização com libc

1

Eu queria atualizar o pacote unetbootin esta manhã. Estava indo bem até que eu recebi este erro.

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libc6 : Breaks: libc6:i386 (!= 2.17-0ubuntu5) but 2.17-0ubuntu5.1 is installed
 libc6:i386 : Breaks: libc6 (!= 2.17-0ubuntu5.1) but 2.17-0ubuntu5 is installed
 libc6-dbg : Depends: libc6 (= 2.17-0ubuntu5.1) but 2.17-0ubuntu5 is installed
 libc6-dev : Depends: libc6 (= 2.17-0ubuntu5.1) but 2.17-0ubuntu5 is installed
             Depends: libc-dev-bin (= 2.17-0ubuntu5.1)
 libc6-dev:i386 : Depends: libc-dev-bin:i386 (= 2.17-0ubuntu5.1)
                  Recommends: gcc:i386 but it is not installed or
                              c-compiler:i386
 libc6-i386 : Depends: libc6 (= 2.17-0ubuntu5.1) but 2.17-0ubuntu5 is installed
 libc6-x32 : Depends: libc6 (= 2.17-0ubuntu5.1) but 2.17-0ubuntu5 is installed
E: Unmet dependencies. Try using -f.

Então eu tentei o apt-get -f install sugerido

Mas isso resultou no seguinte erro

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  linux-headers-3.2.0-31 linux-headers-3.2.0-31-generic linux-headers-3.8.0-19
  linux-headers-3.8.0-19-generic python-central
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libc-dev-bin libc6
Suggested packages:
  glibc-doc
The following packages will be upgraded:
  libc-dev-bin libc6
2 upgraded, 0 newly installed, 0 to remove and 109 not upgraded.
8 not fully installed or removed.
Need to get 0 B/4,814 kB of archives.
After this operation, 6,144 B of additional disk space will be used.
Do you want to continue [Y/n]? 
Preconfiguring packages ...
(Reading database ... 661066 files and directories currently installed.)
Preparing to replace libc6:amd64 2.17-0ubuntu5 (using .../libc6_2.17-0ubuntu5.1_amd64.deb) ...

A copy of the C library was found in an unexpected directory:
  '/lib/x86_64-linux-gnu/libc-2.15.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/x86_64-linux-gnu' and try again.

dpkg: error processing /var/cache/apt/archives/libc6_2.17-0ubuntu5.1_amd64.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/libc6_2.17-0ubuntu5.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Eu tentei apt-get clean apt-get update & amp; & amp; apt-get upgrade

Mas isso também não ajudou. Os mesmos erros estão ocorrendo. Estou um pouco incerto sobre se ouso reiniciar. Como faço para corrigir isso?

Saída da política do apt-cache libc6

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libc6 : Breaks: libc6:i386 (!= 2.17-0ubuntu5) but 2.17-0ubuntu5.1 is installed
 libc6:i386 : Breaks: libc6 (!= 2.17-0ubuntu5.1) but 2.17-0ubuntu5 is installed
 libc6-dbg : Depends: libc6 (= 2.17-0ubuntu5.1) but 2.17-0ubuntu5 is installed
 libc6-dev : Depends: libc6 (= 2.17-0ubuntu5.1) but 2.17-0ubuntu5 is installed
             Depends: libc-dev-bin (= 2.17-0ubuntu5.1)
 libc6-dev:i386 : Depends: libc-dev-bin:i386 (= 2.17-0ubuntu5.1)
                  Recommends: gcc:i386 but it is not installed or
                              c-compiler:i386
 libc6-i386 : Depends: libc6 (= 2.17-0ubuntu5.1) but 2.17-0ubuntu5 is installed
 libc6-x32 : Depends: libc6 (= 2.17-0ubuntu5.1) but 2.17-0ubuntu5 is installed
E: Unmet dependencies. Try using -f.
    
por Matt H 24.11.2013 / 23:39

2 respostas

5

Primeiro de tudo, vá aqui /lib/x86_64-linux-gnu mova esses arquivos para /root : libc-2.17.so libdl-2.17.so libm-2.17.so libpthread-2.17.so librt-2.17.so

Comandos para ir ao diretório /lib/x86_64-linux-gnu e copiar os arquivos para /root ,

sudo -s
cd /lib/x86_64-linux-gnu
cp libc-2.17.so /root
cp libdl-2.17.so /root
cp libm-2.17.so /root
cp libpthread-2.17.so /root
cp librt-2.17.so /root

Em seguida, você precisa iniciar o bash com LD_PRELOAD :

predefinidos
LD_PRELOAD=/root/libc-2.17.so:/root/libdl-2.17.so:/root/libm-2.17.so:/root/libpthread-2.17.so:/root/librt-2.17.so bash

Comandos para remover os arquivos no diretório /lib/x86_64-linux-gnu ,

rm libc-2.17.so
rm libdl-2.17.so
rm libm-2.17.so
rm libpthread-2.17.so
rm librt-2.17.so

depois disso, dist-upgrade ou fix-missing package funcionará:

apt-get -f install

OR

apt-get -f dist-upgrade
    
por Avinash Raj 25.11.2013 / 00:19
0

Obrigado Avinash Raj!

Eu corrijo esse problema seguindo seu método. Mas com edição menor do seu método:

  1. sudo

    cd /lib/x86_64-linux-gnu cp libc-2.17.so /root cp libdl-2.17.so /root cp libm-2.17.so /root cp libpthread-2.17.so /root cp librt-2.17.so /root cp ld-2.17.so /root/

mkdir /root/i386

e cd /lib/i386-linux-gnu cp libc-2.17.so /root/i386 cp libdl-2.17.so /root/i386 cp libm-2.17.so /root/i386 cp libpthread-2.17.so /root/i386 cp librt-2.17.so /root/i386 cp ld-2.17.so /root/i386

  1. Pré-carregamento: LD_PRELOAD=/root/libc-2.17.so:/root/libdl-2.17.so:/root/libm-2.17.so:/root/libpthread-2.17.so:/root/librt-2.17.so bash

  2. remova libs: cd /lib/i386-linux-gnu rm libc-2.17.so rm libdl-2.17.so rm libm-2.17.so rm libpthread-2.17.so rm librt-2.17.so rm ld-2.17.so

cd /lib/x86_64-linux-gnu/ rm libc-2.17.so rm libdl-2.17.so rm libm-2.17.so rm libpthread-2.17.so rm librt-2.17.so rm ld-2.17.so

  1. apt-get -f install Eu encontro erro quando exec este comando "Não é possível encontrar o arquivo lib6" Eu recupero de: %código% e dpkg -i /var/cache/apt/archives/*.deb

  2. então eu posso fazer o dist-upgrade. dpkg --configure -a

por Jiejing Zhang 04.03.2014 / 09:46