该文可解决LIBC_2.x找不到的问题。
glibc是gun发布的libc库,即C运行库。glibc是Linux系统中最底层的api,几乎其它任何运行库都依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。总的来说,不说运行在linux上的一些应用,或者你之前部署过的产品,就是很多linux的基本命令,比如cp、rm、ll之类都得依赖它。
网上有很多惨痛的经历,甚至升级失败后系统退出后无法重新进入。对于Centos这样的系统各种库的版本都很低,如果升级C运行库到一个太新的版本,可能会影响系统的运行,如果遇到该问题可以考虑:
1.在低版本的系统编译自己的产品。
2.用高版本的系统编译而需要部署到较低版本,考虑用mock等技术制作更好的安装包,把依赖打入包内。
3.利用容器技术。
下面是升级升级glibc2.15的步骤
首先看看现有的情况:
$ ll /lib64/libc.so.6
lrwxrwxrwx 1 root root 19 Sep 23 08:29 /lib64/libc.so.6 -> /lib64/libc-2.12.so
libc.so.6是一个软连接,当前的glibc是2.12版本,我遇到的是GLIBC_2.15找不到的问题,所以要升级。
其次,下载源码编译安装(最好用root操作)。
wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz
wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz
tar -xvf glibc-2.15.tar.gz
tar -xvf glibc-ports-2.15.tar.gz
mv glibc-ports-2.15 glibc-2.15/ports
mkdir glibc-build-2.15
cd glibc-build-2.15
../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make
make install
intsall提示成功后,去看glibc的共享库:ll /lib64/libc*,可以看到2.12的旧库文件还在,多了2.15版本的库文件。
这里可以检查下 strings /xxxx/glibc-build-2.15/libc.so|grep GLIBC 是要有2.15的
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
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_PRIVATE
然后需要更新系统的库。
这里要注意,更新系统里的链接(/lib64/libc.so.6)很容易出错,我不清楚有没有更好的办法,一般都是删除旧链接,建立新链接,但是删除旧链接后很多命令不能用了,这个时候就需要临时指定一个glibc库(下面有更好的方法)。
cp /****/glibc-build-2.15/libc.so /lib64/libc-2.15.so
rm -f /lib64/libc.so.6
LD_PRELOAD=/lib64/libc-2.15.so
ln -s /lib64/libc-2.15.so lib64/libc.so.6
我看原文下面有个评论或许是个更好的方法:
先在另外一个路径下建立这个软连接,然后mv到这个地方直接覆盖掉,亲测有效。
ln -s /lib64/libc-2.15.so libc.so.6
mv libc.so.6 /lib64/libc.so.6
至此,更新完毕,检查一下: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
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_PRIVATE
转载 :
https://blog.csdn.net/officercat/article/details/39520227