как установить glibc 2.3.2 на Gentoo? - PullRequest
0 голосов
/ 08 апреля 2011

Я написал приложение, и мне нужно выполнить его в Gentoo, но когда я пытаюсь запустить его, я получаю следующее сообщение:

/ lib / libc.so.6: версия `GLIBC_2.3.4 'не найдена (требуется для /usr/local/myapp/lib/myapplib.so.1)

текущая версия GLIBC в этом gentoo - 2.3.2.

Я не могу обновить этот glibc, потому что у меня нет разрешения, поэтому мне нужно «понизить» мой glibc к той же версии (2.3.2) ... как я могу это сделать?

ТКС,

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Проблема "/lib/libc.so.6: версия` GLIBC_2.3.4 'not found "возникает из-за попытки запустить двоичный файл, скомпилированный с новым glibc в системе со старой версией glibc.По этой причине понижение уровня glibc сильно не рекомендуется.

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

0 голосов
/ 08 апреля 2011

Я на самом деле борюсь с той же проблемой, поэтому, возможно, у меня есть некоторая информация, которая может помочь.

Короче говоря, ваш двоичный файл был скомпилирован для поиска libc.so.6.GLIBC_2.3.4 находится в libc.so.5.Насколько я знаю, если вы понизили версию своего glibc на своем компьютере разработчика, некоторые другие ваши программы могут работать некорректно (потому что они были скомпилированы для поиска текущей версии).Каким-то образом в CentOS / RHEL есть пакет compat-glibc, который может находиться рядом с текущим glibc, не вызывая этой ошибки.Если ваше устройство разработки использует CentOS / RHEL, установите этот пакет / перекомпилируйте, и вы должны быть готовы.Возможно, вам придется использовать более старый компилятор, чтобы найти более старую библиотеку.Если вы не разрабатываете CentOS / RHEL, продолжайте.

Мой план атаки сегодня - собрать glibc из исходного кода.Это означает использование компилятора, выпущенного примерно в то же время, что и старая версия glibc.Вы можете столкнуться с некоторыми камнями преткновения (такими как необходимость использования более старой версии builddutils и т. Д.), Но я надеюсь, что как только libc.so.5 будет скомпилирован и установлен в / usr / local / lib, мое приложение обнаружит, что перед этимнаходит libc.so.6 в / lib.

Итак, вот оно.Это не для слабонервных, и это определенно не быстрое решение.Сегодня я планирую проверить это, поэтому не могу сказать, что это правильное решение.Пожалуйста, улей ... если я совершенно не прав, поправь меня и спаси эту бедную душу от этой извилистой извилистой дороги: -)

РЕДАКТИРОВАТЬ: ссылка на источники glibc

...