Check it is actually needed
Firstly check the python application as it could be out of date and is probably misreading the glibc
version. CentOS shows the base version as installed and is patched to keep up with changes and it could just be a case of fixing the version that is being looked for in the code as a quick fix, but if the application is being actively developed you need to let the developers know or fork it for yourself if you can.
An up to date glibc
on CentOS 7 should be 2.17-196.el7_4.2
If it is needed, Containerise
If it's absolutely necessary to run this application, the official RHEL approach would be to containerize, but you would still need to provide a working glibc, which wouldn't be possible with stock CentOS 7.
As a last resort, install glibc
in a nonstandard location
If this isn't viable, and as an absolute last resort, it is possible to install a newer version of glibc
than 2.18 as that is five years old now and glibc
has been updated for several vulnerabilities and I'm not sure off the top of my head if it will build with the version of make
in CentOS 7, but any newer version should work as follows:
- This can potentially affect the functionality of your computer so make sure you know what you are doing
You can build the version of glibc
you require elsewhere on your server and add it to LD_LIBRARY_PATH
for the application. Note this must only be done for the application only.
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
is the standard place to install third-party applications and libraries but you can use any path away from the system paths.
/tmp
. Contact its developer and make sure you got a correct and clean copy of the program, and ensure that your system does not have malware now. – Michael Hampton Jan 29 '18 at 22:23