Я попытался обновить систему, с которой у меня не было никаких проблем, и столкнулся с проблемой при выполнении полного обновления aptitude. Обновление прошло нормально, пока я не получил эту ошибку:

 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

Теперь, когда я пытаюсь обновить или установить любой пакет, я получаю эту ошибку. Любые попытки перемещения файлов требовали только перемещения файлов. Я также не мог исправить с помощью dpkg.

Некоторая информация:

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    

Спасибо !

2 ответа2

1

После ответа на комментарий ...

Начните с проверки того, что при запуске программы вы получаете копию динамического компоновщика, который не включает этот путь. Тебе следует увидеть:

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

(Шестнадцатеричный адрес может отличаться.) Этот файл должен быть символической ссылкой, указывающей на /lib/x86_64-linux-gnu/ld-2.13.so которая не должна быть символической ссылкой и, конечно, не должна заканчиваться на ld-2.11.2.so .

Если предположить, что все выглядит правильно, то можно смело идти дальше и переименовать /lib/ld-2.11.2.so в сторону (хотя, тем не менее, у меня будет спасательный носитель). Не удаляйте его, пока не убедитесь, что все в порядке, на случай, если вам понадобится вернуть его обратно!

Вы можете обнаружить, что есть жалобы на другие оставшиеся файлы, которые можно проверять и обрабатывать аналогичным образом.

Очевидно, этот совет не проверен напрямую!

1

У меня была эта проблема. , окончательно исправлено

  1. хромирование в поврежденную / остановленную систему, где я
  2. скопировал кучу lib.so из lib / i38 во временную папку в этом разделе / root и
  3. создание символических ссылок на каждый из них. На этом этапе стало возможным
  4. загрузиться в этот раздел, а затем
  5. обновить как обычно. (Точный список файлов не приходит на ум и в любом случае, вероятно, будет варьироваться от системы к системе - он включал библиотеку GNU-threads и некоторые другие, каждый из которых поднял страшную библиотеку в сообщении о неожиданном расположении) После обновления новая libs будет в обычном / lib / i386(или в вашем эквиваленте), а загрузка зависимостей LSB создаст для вас новые символические ссылки. Убедившись, что все в порядке, вы можете уничтожить временную папку, и файл .so был перемещен туда ранее. Надеюсь, что это может помочь ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .