28

Как исправить эту ошибку:

/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found

Платформа:

Linux alef 3.2.0-4-amd64 #1 SMP Debian 3.2.35-2 x86_64 GNU/Linux

3 ответа3

28

Это означает, что программа была скомпилирована для glibc версии 2.14, и для ее запуска требуется, но в вашей системе установлена более старая версия. Вам нужно будет либо перекомпилировать программу с версией glibc, которая находится в вашей системе, либо установить более новую версию glibc (пакет "libc6" в Debian).

Debian имеет glibc 2.16 в "экспериментальном" хранилище, но перекомпиляция программы - более безопасный вариант. Glibc - это библиотека, от которой все зависит, поэтому ее обновление может иметь далеко идущие последствия. Хотя, вероятно, в пакете Debian glibc 2.16 нет ничего плохого, но тот факт, что он находится в экспериментальном репозитории, означает, что он не получил такого большого количества тестирования.

18

Я разместил свое решение здесь, перепечатайте его для справки.

В моей ситуации ошибка появляется, когда я пытаюсь запустить приложение (скомпилированное в Ubuntu 12.04 LTS), используя GLIBC_2.14 в Debian Wheezy (который устанавливает glibc 2.13 по умолчанию).

Я использую хитрый способ запустить его и получить правильный результат:

  1. Загрузите libc6 и libc6-dev из Ubuntu 12.04 LTS

  2. Запустите команду dpkg, чтобы установить их в каталог (например, /home /user /fakeroot /):

    $ dpkg -x libc6-dev_2.15-0ubuntu10.6_amd64.deb /home/user/fakeroot/
    $ dpkg -x libc6_2.15-0ubuntu10.6_amd64.deb /home/user/fakeroot/
    
  3. Запустите вашу команду с указанным LD_LIBRARY_PATH:

    $ LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND
    
  4. Мое приложение использует только memcpy () из GLIBC_2.14, и это работает.

Я не знаю, будет ли это работать успешно для других приложений. Желаю это полезно.

0
apt-get update && apt-get -reinstall install vesta-nginx vesta-php

Это должно просто исправить это, не ломая ОС.  

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