1 因为centos6.8的glibc 是2.12的,用到的一些软件是要求2.14,所以按照下面操作安装
mkdir ~/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=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make -j4
sudo make install
就是这里的 -prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin 导致把系统搞崩了,各种命令用不了,ssh不能连接,还出现如下错误
/lib64/libc.so.6: version `GLIBC_2.14' not found (required by /lib64/librt.so.1)
Segmentation fault (core dumped)
ls: error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or directory等错误,,
解决方法:
1先进行 ldconfig -lv /lib64/libc-2.14.so,或者换成你自己要升级的libc-2.14.so所在的目录,
2 export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:/lib64/ 这两个路径分别是系统的lib64和你要升级的libc-2.14.so所在的目录
3此时可以发现命令可以正常运行,,但是ssh还不能连接,进去/lib64目录发现很多软链接已经被改成连接到2.14,此时逐步把这些链接修改指向系统原本的2.12版本
命令如ln -snf libanl-2.12.so libanl.so.1,一个个的改,,改完后 ssh也可以连接,可以新开个终端看看
4然后再ldconfig -lv /lib64/libc-2.12.so 改回去原本的链接
5如果还出现segmentation fault的话,可以看下/etc/profile等是不是加入原来老的libc库,可以把它去掉,加入对应的想要的libc库所在路径