升级原因
因为AI工程师使用tensorflow训练数据时,无法使用相关的包,训练程序报如下错误
ImportError: /lib64/libm.so.6: version `GLIBC_2.23’ not found (required by /anaconda3/lib/python3.7/site
packages/tensorflow/python/_pywrap_tensorflow_internal.so)
Failed to load the native TensorFlow runtime.
See https://www.tensorflow.org/install/errors
for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.
升级
因为centos7的yum升级方式只能将glibc升级至2.17,后在网上查找也没有对应的rpm包,所以决定采用编译安装的方式
最开始选用最高版本(2.29)进行编译安装,各种编译报错,最后就降低版本至2.23,完美编译
本人使用的环境 centos7.3 gcc 4.8 glibc
网上下载对应的glibc2.23的版本源代码
将源码解压后,进入解压后的目录
mkdir glibc_build
…/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make
make install
可能会出现的报错
gawk: error while loading shared libraries: /lib64/libm.so.6: invalid ELF header
make[2]: *** [/disk1/software/gcc/glibc-2.23/build/math/stubs] Error 127
make[2]: Leaving directory /disk1/software/gcc/glibc-2.23/math‘ make[1]: *** [math/subdir_install] Error 2 make[1]: Leaving directory
/disk1/software/gcc/glibc-2.23‘
make: *** [install] Error 2
解决办法
找到 libm.so.6 文件对应的目录,并进入其目录,执行如下语句
unlink libm.so.6
ln -s libm-2.23.so libm.so.6
特别注意
因为glibc属于底层的库,很多命令和程序都是调用该库,所以升级前一定备份,防止系统崩溃。
若转载请注明出处