1.glibc简介
libc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。
2.glibc升级及考量
Centos 为了稳定使用的glibc版本通常比较低,而有些程序需要依赖更新的版本。但是,升级glibc需要慎重,因为升级失败后可能会导致系统不能正常使用。
如果升级glibc到一个太新的版本,可能会影响CentOS的运行。
3.升级glibc
(1.下载glibc-2.14.tar.gz (推荐地址: https://ftp.gnu.org/pub/gnu/glibc/)
(2.上传到Linux系统中某个文件夹下,例如/home/work/var/
(3. 然后解压:tar -zxvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/usr/local/glibc-2.14 (这个地方的位置可以根据自己情况来设置)
make -j 12
make install
#临时修改环境变量,注意‼️,一定要设置,没有设置,会在unlink /lib64/libc.so.6后无法执行各种命令。
export LD_LIBRARY_PATH=/usr/local/glibc-2.14/lib:$LD_LIBRARY_PATH
ll libc.so.6
ll /usr/local/glibc-2.14.1/lib/libc-2.14.so
cp /usr/local/glibc-2.14.1/lib/libc-2.14.so /lib64/
*****************!!! 注意:千万不要关闭当前的终端窗口**************************
unlink /lib64/libc.so.6
ln -s /lib64/libc-2.14.so /lib64/libc.so.6 (如果报错参考下面的思想)
*****************!!!**************************
#查看系统glibc支持的版本
strings /lib64/libc.so.6 |grep GLIBC
可能出现的后遗症:
- linux终端乱码,mysql的命令行无法输入中文,vim文件乱码等等。
- 如果是升级到更高级别,可能会直接命令行都无法使用。
解决办法:
- 降级,不考虑升级。
#通过链接2.12,恢复原本。
export LD_LIBRARY_PATH=/usr/local/glibc-2.14/lib:$LD_LIBRARY_PATH
unlink /lib64/libc.so.6
ln -s /lib64/libc-2.12.so /lib64/libc.so.6
- 参考下面链接解决
https://blog.youkuaiyun.com/lx91216/article/details/103345495
CentOS 6目前的版本是2.14,可以自动升级,最高可以到2.15,超过就可以会出现导致系统不能正常使用,命令只能使用cd。
如果不小心升级到了,
把/etc/profile中的
export LD_LIBRARY_PATH=“$LD_LIBRARY_PATH:/opt/glibc-2.15/lib”
就是加载库的路径。直接把它删掉,让他不要去找我安装的导致出问题的glibc库,保存。关掉终端,重新打开,好了。