glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。很多linux的基本命令,比如ls,mv,cp, rm, ll,ln等,都得依赖于它,如果操作错误或者升级失败会导致系统命令不能使用,严重的造成系统退出后无法重新进入,所以操作时候需要慎重,升级之前保存好重要资料。
写这篇笔记的目的其实是我在centos 下想要安装chrome 浏览器时,有报错说glibc (2.14-2.16) 是安装chrome的依赖,所以才打算把自己的测试机升级下glibc动态库。下面开始正文:
1、首先,查看系统版本和Glibc版本
执行命令查看glibc版本
strings /lib64/libc.so. | grep GLIBC_
结果如下:
由上面的信息可以看出系统是CentOS 6.9,而centos、redhat 系统为了稳定性,glibc的版本还用的是2.12,而现在都已经2.30版本了,为了保险起见,我决定把它升级到2.17版本。
2、下载软件并升级
wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
tar -xvf glibc-2.17.tar.gz
mkdir glibc-2.17/build
cd glibc-2.17/build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make –j4
make install
说明:
1、make 后面的-j4 是针对多核cpu提高编译速度的,数字4是cpu 核心的两倍(最大可设置为cpu核心的两倍)
2、--prefix 后面的路径一定要是/usr, 如果换成其他的都可能会导致失败。
安装完成后,最后输出
红框内这句话基本可以确定是升级成功了!!!O(∩_∩)O哈哈~
3、测试
执行
ldd --version
或者执行
strings /lib64/libc.so.6 | grep GLIBC_
至此,glibc 的版本升级就算是大功告成,期待这篇我经过数次(大概重新编译安装了5次,还包括一次系统大部分命令都无法使用,重启系统后都无法进入,不过还要我用的是虚拟机测试)实验测试才验证过的笔记能够帮到大家,后面我还会分享一个glibc升级时libc.so.6 文件误删或者丢失导致大部分命令失效的解决办法,敬请期待!