/lib64/libc.so.6: version `GLIBC_2.14’ not found
- centos6.x 系统默认的glibc为2.12
- 使用
strings /lib64/libc.so.6 | grep GLIBC查看
- 使用
- torch需要glibc 2.17版本
- 有两种安装方式
- 使用yum安装预编译好的包
- 手动在root用户下编译,之后添加到LD_LIBRARY_PATH中
- 安装成功后再次import torch可能会报错CXX版本不对,此原因为G++版本不对,更换 ```bash $ strings /lib64/libc.so.6 | grep GLIBC GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_2.6 GLIBC_2.7 GLIBC_2.8 GLIBC_2.9 GLIBC_2.10 GLIBC_2.11 GLIBC_2.12
yum 安装
update glibc to 2.17 for CentOS 6
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-2.17-55.el6.x86_64.rpm wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-common-2.17-55.el6.x86_64.rpm wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-devel-2.17-55.el6.x86_64.rpm wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-headers-2.17-55.el6.x86_64.rpm
sudo rpm -Uvh glibc-2.17-55.el6.x86_64.rpm \ glibc-common-2.17-55.el6.x86_64.rpm \ glibc-devel-2.17-55.el6.x86_64.rpm \ glibc-headers-2.17-55.el6.x86_64.rpm —force —nodeps
法2
mkdir ~/glibc-install; cd ~/glibc-install wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz tar -zxvf glibc-2.17.tar.gz cd glibc-2.17 mkdir build
cd build ../configure —prefix=/somewhere/glibc-2.17 make -j 10 # number of threads make install
之后运行随便一个程序后会报错
原因貌似是ld的版本和libc版本不对,程序使用的ld的绝对路径在链接的时候被hardcoded了,
所以需要同时更换ld的版本才可以成功运行程序
另一个办法是使用patchelf进行替换程序的ld路径
export LD_LIBRARY_PATH=/somewhere/glibc-2.17/lib:$LD_LIBRARY_PATH ```
pytest 相关
- 最稳妥的办法是使用python -m pytest tests/ 这样,pytest运行test文件时的sys.path为当前python的syspah,并且会插入当前目录到syspaht首部
- 其次可以设置PYTHONPATH=./ ,这样通用会在syspath首部插入该变量值,但是syspath有可能会变成其他环境python的syspath
