/lib64/libc.so.6: version `GLIBC_2.14’ not found

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