Безопасно обновите glibc на CentOS 7

Я попробовал приложение Python на моей машине CentOS, и оно дает мне следующую ошибку:

ImportError: /usr/lib64/libc.so.6: version `GLIBC_2.18' not found (required by /tmp/_MEI2BYIr4/libstdc++.so.6)

Я испытывал желание обновить GLIBC, но после прочтения некоторых форумов мне кажется, что я могу сломать систему. Знаете ли вы альтернативу?

Спасибо

2 ответа

Проверьте, действительно ли это необходимо

Во-первых, проверьте приложение 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-клиент для 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

Это сработало для меня

Другие вопросы по тегам