如何解决glib.so.6 - Not Found问题(不用sudo提权)
最近在帮室友安装一个python包时,安装完后import出现类似/usr/glib.so.6: version 'GLIB_2.14' not found
的问题。
本文是对https://github.com/materialsproject/pymatgen/issues/1172的一个总结
出现原因:服务器上的glib库版本太旧,不能支持2.14版本,可以通过下列命令查看自己的glib版本:strings /lib/libc.so.6 | grep GLIBC
解决方案:
首先尝试卸载包后重新安装(基本无效);
如果自己的用户在超级用户组中,或者直接有root权限,可以用http://www.lightofdawn.org/wiki/wiki.cgi/NewAppsOnOldGlibc中所说的weaken glib dependencies的方法,暴力的修改glib.so文件中,为其增加2.14相应的函数入口实现。这个方法理论上可行,但没有尝试过。
重新下载最新版glib并编译,安装在自己的用户目录下(不用提权),介绍安装方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19mkdir ~/glibc_install; cd ~/glibc_install
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
tar zxvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/home/yourusername/glibc #此处直接安装到自己目录下,就不用特权了
make -j4 #4是指线程数
sudo make install
export LD_LIBRARY_PATH=/home/yourusername/glibc/lib之后在python中成功import。
可以将最后一句放在
~/.bashrc
中,这样以后不用每次export了