Я пробовал приложение Python на моем компьютере с CentOS, и оно выдает следующую ошибку:
ImportError: /usr/lib64/libc.so.6: version `GLIBC_2.18' not found (required by /tmp/_MEI2BYIr4/libstdc++.so.6)
У меня возникло желание обновить GLIBC, но, прочитав несколько форумов, мне кажется, что я могу сломать систему. Вы знаете альтернативу?
Спасибо
Сначала проверьте приложение python, так как оно может быть устаревшим и, вероятно, неправильно читает glibc
версия. CentOS показывает базовую версию как установленную и исправленную, чтобы не отставать от изменений, и это может быть просто случай исправления версии, которая ищется в коде, в качестве быстрого исправления, но если приложение активно разрабатывается, вам необходимо дайте знать разработчикам или раскройте его для себя, если сможете.
Актуальный glibc
на CentOS 7 должно быть 2.17-196.el7_4.2
Если это приложение абсолютно необходимо запускать, официальный подход RHEL будет заключаться в контейнеризации, но вам все равно потребуется предоставить работающую glibc, что было бы невозможно со стандартной CentOS 7.
glibc
в нестандартном местеЕсли это нецелесообразно и в крайнем случае, можно установить более новую версию glibc
чем 2,18, так как этому сейчас пять лет и glibc
был обновлен для нескольких уязвимостей, и я не уверен, что он будет построен с версией make
в CentOS 7, но любая более новая версия должна работать следующим образом:
Вы можете построить версию glibc
вам нужно где-нибудь на вашем сервере и добавьте его в LD_LIBRARY_PATH
для приложения. Обратите внимание, что это нужно делать только для приложения.
wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar zxvf glibc-2.18.tar.gz
cd glibc-2.18
mkdir build
cd build
../configure --prefix=/opt/glibc-2.18
make -j4
sudo make install
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/glibc-2.18/lib
/opt
- стандартное место для установки сторонних приложений и библиотек, но вы можете использовать любой путь, отличный от системных.
В конце концов, мне не пришлось обновлять GLIBC. В gdc-client
Инструмент, который я загрузил через R, казалось, предназначен для Ubuntu, а не CentOS, хотя я сделал это на CentOS 7. Затем я загрузил gdc-client для CentOS, и он работал нормально.
В CentOS 7 я включил /usr/lib64
папка в rpath
следующим образом
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 --set-rpath /opt/glibc-2.18/lib:/usr/lib64 pydio-agent
Это сработало для меня