LINUX.ORG.RU

/lib/i686/cmov/libc.so.6: version `GLIBC_2.9' not found


0

1

При установки одной программы выходит ошибка /lib/i686/cmov/libc.so.6: version `GLIBC_2.9' not found (required by ./libmono-2.0.so.1).

/lib/libc.so.6 | grep GLIBC GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.1 GLIBC_2.1.2 GLIBC_2.1.3 GLIBC_2.2 GLIBC_2.2.1 GLIBC_2.2.2 GLIBC_2.2.3 GLIBC_2.2.4 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_2.6 GLIBC_2.7 GLIBC_PRIVATE

lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 6.0.6 (n/a) Release: 6.0.6 Codename: n/a

uname -a Linux webserver 2.6.26-2-686 #1 SMP Sat Jun 11 14:54:10 UTC 2011 i686 GNU/Linux

Обновлять ядро debian очень нежелательно, если ли другое решение проблемы?


Ядро тут ни при чем, устаревшая версия glibc. Обновлять надо ее, либо пересобрать эту программу в системе со старой версией glibc. Судя по тому, что ругается библиотека libmono, она была поставлена вместе с программой, не из штатных реп?

Kiborg ★★★ ()
Ответ на: комментарий от Kiborg

Читала про эту проблему. Везде пишут сделать upgrade до следующих дистибутивов. Я думаю libmono ставится с программой, потому что находится в папке с ней. Как обновить glibc? Lenny ведь уже только в deb http://archive.debian.org/debian/ lenny main contrib и у меня стоит последняя версия, я сделала upgrade.

gema ()
Ответ на: комментарий от gema

Собрать со старой версией проще - надо поставить необходимые для сборки dev-пакеты, в частности glibc-dev, возможно какие-то еще (надо смотреть README для программы).

Для обновления glibc надо смотреть lenny-backports. Точно я не знаю, сам этим не занимался.

Kiborg ★★★ ()

Во-первых, есть ещё lenny-backports и lenny-backports-sloppy.

Во-вторых, можно попробовать взять deb-пакет с новой glibc откуда угодно и распаковать рядом с libmono-2.0.so.1 (и убедиться, что эта директория есть в LD_LIBRARY_PATH).

AITap ★★★★★ ()
Ответ на: комментарий от gema

Поиск libc не даёт результатов как в lenny-backports, так и в lenny-backports-sloppy. Был бы он там, нужно было бы обновлять пакет libc6, а так придётся копировать новый libc рядом с прочими библиотеками.

AITap ★★★★★ ()
Ответ на: комментарий от val-amart

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

gema ()
Ответ на: комментарий от gema

Проапгрейдся до Squeeze.

Для этого замени в /etc/apt/sources.list везде lenny на stable.

Потом apt-get update && apt-get dist-upgrade

LongLiveUbuntu ★★★★★ ()
Ответ на: комментарий от gema

Ну тогда полный бэкап и апгрейд. Рано или поздно тебе придется это сделать.

LongLiveUbuntu ★★★★★ ()
Ответ на: комментарий от gema

Делайте так, как советует AITap, скачиваете пакет с новой версией библиотеки, распаковываете его, кладёте библиотеки куда-либо, затем указываете подгружать новые библиотеки при вызове вашей команды:

LD_PRELOAD=/<путь до новой библиотек>/<имя новой библиотеки> <название вашей программы>

Т.е. что-то вроде:

LD_PRELOAD=/tmp/libc.so.6 command

kostik87 ★★★★★ ()
Ответ на: комментарий от Kiborg

Пытался обновлять glibc - ставится, работает, программа для новой версии работает, но если поставить версию программы для старой glibc , она будет требовать старую. Можно обмануть dpgk, но gсс ,например, тоже будет требовать старую. Во-вторых, если glibc обновить неудачно, то ничего грузится не будет и лучше иметь копию старых файлов, чтобы вернуть рабочее состояние с livecd. Собирать со старыми dev тоже пробовал, но в новой версии скорее всего новая не только glibc, но другие библиотеки, с новыми фичами , которых в старых просто нет. И тогда уже не просто собрать, править исходники. Вообщем, как повезет.

ilovewindows ★★★★★ ()
Ответ на: комментарий от kostik87

Тогда вопрос совсем тупых где взять библиотеку?Я не понимаю,что нужно скачать. Библиотека - это libc.so.6 и все?

gema ()
Ответ на: комментарий от ilovewindows

Мда, не думал, что все настолько сложно. Мне в моем случае повезло - нашлась виртуалка с нужным дистрибутивом со старым glibc.

Kiborg ★★★ ()
Ответ на: комментарий от Kiborg

Можно еще использовать debootstrap + chroot, с серверами firebird, например, на ура проходит.

ilovewindows ★★★★★ ()
Последнее исправление: ilovewindows (всего исправлений: 1)
Ответ на: комментарий от anonymous

Нет,просто чехарда с версиями задолбала многих.

anonymous ()
Ответ на: комментарий от gema

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

val-amart ★★★★★ ()
Ответ на: комментарий от AITap

Скачала пакет, распаковала в /tmp/.Попыталась сделать LD_PRELOAD=/tmp/lib/i386-linux-gnu/libc.so.6 ./install-3.1.1.sh и получила Ошибка сегментирования. Я не могу скопировать файлы <директория>/lib/i386-linux-gnu/ рядом с libmono, потому что папка с программой появляется по запуску скрипта и в ней же библиотека libmono.

gema ()

Ух ты ё 2.9!

Такой версии даже в experimental нет обновление не поможет. Либо пересобрать с текущим glibc они по идее должны быть ABI совместимы либо в chroot поставить.

Dron ★★★★★ ()
Ответ на: комментарий от Dantix

А, блин, точно. Засиделся я в криокамере.

Dron ★★★★★ ()
Ответ на: комментарий от gema

Что собрать то надо? Что за программа? В репозитории есть?

Скачать исходники, поправить маke or cmake чем там сборка идёт я не телепат, ну и make ;make install

Dron ★★★★★ ()
Ответ на: комментарий от gema

Попробуйте LD_LIBRARY_PATH=/tmp/lib/i386-linux-gnu/ ./install-3.1.1.sh.

Вы также можете распаковать install-3.1.1.sh. Он же сделан на makeself, да? Запустите ./install-3.1.1.sh --help, там наверняка будет указан параметр, распаковывающий архив (насколько я помню, --noexec --keep или --tar xvv должны сработать).

AITap ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.