Redhat Linux /lib/libc.so.6: версия `GLIBC_2.16 'не найдена (требуется для /lib/libncurses.so.5)

9142
Junaid388

Я использую сервер RHEL 6.4, на котором в настоящее время установлен GLIBC 2.12. Мы пытаемся запустить программу, которая дает эту ошибку

/lib/libc.so.6: версия `GLIBC_2.16 'не найдена (требуется для /lib/libncurses.so.5)

Я не могу обновить через репо, так как Сервер не подключен к Интернету.

Последний сделал обходной путь, в котором он взял файл libc.so.6 из GLIBC_2.16 и изменил ссылку в файле / lib, похоже, он работал правильно,

Но я не могу найти файл libc.so.6 для GLIBC_2.16

Любые идеи, где я могу найти файл без полного обновления системы GLIBC.

Если нет никакой работы, чтобы заставить это приложение использовать новый GLIBC.

1

1 ответ на вопрос

0
The19thFighter

EDIT: I assume you're using a normal i386 compatible processor.
How did you end up in having ncurses from a new system?
Anyway, here is what you asked for, you can take it from: http://launchpadlibrarian.net/123667354/libc6_2.16-0ubuntu6_i386.deb (launchpad) By extracting the package (for example on Windows using 7zip) and taking libc.so.6 out of it. (in lib/i386-linux-gnu/) For amd64 you just need to adapt it. However do NOT install this package by overwriting! Just use libc.so.6 if that was the workaround, else your server is most likely screwed up. Even though it's from another distribution this normally works.

In case you are on Linux and you don't want to reboot or whatever, here is a way to unpack it on Linux.

# mkdir libc # cd libc # ar x ../libc6_2.16-0ubuntu6_i386.deb # tar xzf data.tar.gz 

now you should have a directory with all .so files in the libc6 package.

Oh, and be careful, libc.so.6 is actually a link to libc-2.16.so here so you want to copy libc-2.16.so and not libc.so.6

Сервер RHEL 6.4 работает под управлением x86_64. И ncurses для netezza CLI Клинт. Будет ли лучше, если мы обновим glibc до версии 2.16 или более поздней? Если так, то как мы можем сделать это без подключения к интернету для доступа к Redhat репо. И это обратно совместимо и не вызовет проблем с существующими установками. Junaid388 9 лет назад 0
Тогда вы должны быть в порядке с этим пакетом: http://launchpadlibrarian.net/121445924/libc6_2.16-0ubuntu3_amd64.deb The19thFighter 9 лет назад 0
Обновление glibc не должно быть проблемой. The19thFighter 9 лет назад 0
Поскольку у меня нет yum, как я могу обновить glibc без разрешения зависимостей ?? Новое в администрировании Linux: / Junaid388 9 лет назад 0
http://www.rpm.org/max-rpm/s1-rpm-install-performing-install.html Вы можете использовать rpm -i package.rpm для установки пакета. Однако я никогда не использовал дистрибутив, основанный на rpm, поэтому не могу гарантировать, что он идеален. https://access.redhat.com/downloads справа вы сможете искать пакеты, если у вас есть учетная запись RedHat. Я думаю, что вы могли бы скачать новейший glibc там. Если это не работает https://access.redhat.com/solutions/10154 Затем вы можете установить загруженный rpm, передав его на сервер. RPM должен проверить зависимости. The19thFighter 9 лет назад 0
Я только что осмотрелся, кажется, что 2.12 - это действительно стабильная версия для 6.4. Вы все еще можете обновить (загрузив, например, 2.17 с el7), но я бы не стал этого делать, так как это может негативно повлиять на стабильность. Никогда не меняйте работающую систему, если это действительно не нужно. The19thFighter 9 лет назад 0
Проблема в том, что клиент, который нам нужен, требует 2.16, я думаю, что произошло в том, что сисадмин до того, как я установил ncurses, соответствовал glibc 2.16, и теперь мы вынуждены запускать это, либо я понижаю все зависимости, либо обновляю текущий один. Junaid388 9 лет назад 0
Я хотел бы предложить понизить текущую версию ncurses до версии, которая использует более старую версию glibc, но будьте осторожны, возможно, именно эта версия нужна вашей программе, что может быть причиной, по которой системный администратор установил ее на все. Если это так, вам нужно перекомпилировать текущую версию ncurses для работы с glibc 2.12. Просто проверьте, работает ли старый ncurses с вашей программой. Если нет, вы все равно можете вернуть его обратно (если у вас есть pkg). Обновление glibc, пожалуй, самая опасная вещь, которую вы можете сделать, и если что-то пойдет не так, исправить это будет больно. The19thFighter 9 лет назад 0
Как я могу перекомпилировать текущую версию ncurses. Я проверил ISO для REDhat, и он имеет следующую версию, установленную с Redhat Media glibc.x86_64 - 2.12-1.107.el6 ncurses.x86_64 - 5.7-3.20090208.el6 Если они оба установлены с одного носителя, почему они не совместимы с версией glibc Junaid388 9 лет назад 0
Вы уверены, что никто не переписал ncurses? Также может случиться так, что будет использована не нативная версия ncurses, а одна, связанная с вашим программным обеспечением. Использование ldd с путем к exe (вашему программному обеспечению) должно прояснить ситуацию, или, если это не сработает, используйте LD_DEBUG = libs в качестве переменной окружения, затем >> вывод в файл и проверьте, откуда были загружены ncurses. The19thFighter 9 лет назад 0
Я проверил, и ncurses загружаются с правильного пути lib, я даже попытался сначала переустановить glibc и ncurses, но все равно получаю ту же ошибку: / В любом случае я могу проверить, есть ли библиотека, которая зависит от ncurses, для запуска, как требует ncurses Глебк, чтобы бежать. Junaid388 9 лет назад 0
Мой Плохой, кто-то вручную поместил файл so в папку lib и вручную создал программную ссылку, удалил программную ссылку, удалил файл так, переустановил ncurses, побежал как чудо Junaid388 9 лет назад 0