最近在服务器上安装Keras的时候,报了如下错误:
ImportError: /lib64/libc.so.6: version `GLIBC_2.14' not found
(required by /root/anaconda3/lib/python3.5/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)
百度发现需要更新GLIBC到2.14。
首先在服务器里输入:strings /lib64/libc.so.6 | grep GLIBC
可以查看当前存在的版本

随后将下载的安装包解压到你想存放的文件夹,我存放到了这里:/var/vm
tar -zxvf /root/anaconda3/offline_pkgs/glibc-2.14.tar.gz -C /var/vm
之后定位到当前文件夹
cd /var/vm/glibc-2.14/
在文件夹下建议build路径
mkdir build
转至build路径
cd build
在当前路径下,配置预编译(不会根据你的路径改变)
../configure --prefix=/usr/local/glibc-2.14
编译安装
make (这里有的人用make -j4进行加速,但是我当时加了j4出错了,所以我用的make,不影响)
make install
安装成功后,建立软连接
ln -s /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
查看build目录下是否编译出了新的libc.so.6
strings libc.so|grep GLIBC
如果出现2.14说明至少目前为止,你是成功的

之后需要删除原来的链接,更新为2.14的链接,这一步风险有点大。当时我执行的时候公司服务器短信一直冒,吓死本宝宝了。
一定要注意,删除旧链接如果没有马上更新新的链接的话会造成很多命令不可用。
分步执行如下命令:(copy文件 ——》删除旧链接 ——》生成新链接)
cp /var/vm/glibc-2.14/build/libc.so /lib64/libc-2.14.so
rm -rf /lib64/libc.so.6
LD_PRELOAD=/lib64/libc-2.14.so ln -s /lib64/libc-2.14.so /lib64/libc.so.6
之后执行 ,查看2.14是否更新,如果有则更新成功。
strings /lib64/libc.so.6 | grep GLIBC
要说明的一点是,我后面更新到2.14后,tensorflow又提示我需要2.17的GLIBC,我在继续执行上述命令直到最后一步的时候
LD_PRELOAD=/lib64/libc-2.17.so ln -s /lib64/libc-2.17.so /lib64/libc.so.6
出错了
error while loading shared libraries: __vdso_time: invalid mode fo
面对公司告警短信直冒,我急中生智又改到了2.14(注意这一步可以还原你原来的设置,切记切记)
LD_PRELOAD=/lib64/libc-2.14.so ln -s /lib64/libc-2.14.so /lib64/libc.so.6
短信是不报了,但是升级到2.17的问题还是没解决,只能升到2.14.
升级到2.14后的第二天发现服务器上的时间改变了,不得已又重新用以上方式降级到2.12,问题解决了。
至于安装Keras,我选择了setup的方式先安装Theano,之后再安装keras的傻瓜式方式。
我这一顿折腾哟....
在Linux服务器上安装Keras时遇到`GLIBC_2.14' not found`错误,通过更新GLIBC到2.14版并创建软链接解决问题。但在升级到2.17时出现错误,最终回退到2.14,然后通过安装Theano和Keras解决库依赖问题。
2622

被折叠的 条评论
为什么被折叠?



