前言
本篇文章主要介绍glibc依赖库的升级,内容不多,直接上干货
(一)升级背景
glibc
,即GNU C Library
,是Linux和其他类Unix操作系统中最常用的C标准库的实现。它提供了许多基本的系统调用和功能,是操作系统内核和用户空间应用程序之间的桥梁。简单来说,glibc
是Linux系统中最基础的组件之一,几乎所有的应用程序都直接或间接地依赖于它。没有特殊情况的话,都不建议升级glibc库,尤其是生产环境,防止出现升级后出现服务不可用的问题
笔者需要升级的glibc
库的背景是安装一个高版本的nginx
,启动的时候报如下问题:
./sbin/nginx: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by ./sbin/nginx)
从报错信息可以看到,这里提示我们nginx服务依赖了glibc2.17
的版本,我们可以通过下面的命令来先检查当前服务器的glibc库的版本
ldd --version
(二)升级glibc库
步骤1:下载所需版本的glibc
下载路径:http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz 有需要其他版本的自行在(http://ftp.gnu.org/gnu/glibc/)里面下载
下载完成后,自行上传和解压到相关的目录即可,这里的目录没有什么太大限制
cd /opt/glibc_update
tar -xvf glibc-2.17.tar.gz
步骤2:创建编译目录
cd glibc-2.17
mkdir build
cd build
步骤3:配置编译参数
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
步骤4:备份原有文件
cp /lib64/libc.so.6 /lib64/libc.so.6.bak
步骤5:多核心编译
make -j16 && make -j16 install
步骤6:验证是否安装完成
若结果有GLIBC_2.17
就说明升级成功了
strings /lib64/libc.so.6 | grep GLIBC
image.png
需要注意的是,这种方式虽然可以升级成功,操作的步骤也不繁琐,但是还是有一定风险的,一旦升级失败可能原先系统上面会出现各种命令都用不了,ssh再也连接不上服务器的问题,所以升级的过程中要做好服务的备份,且glibc
升级的跨度不要太大,不追求新,而是要追求稳
网友评论