升级glibc2.23

35 篇文章 1 订阅

遇到问题 /lib64/libm.so.6: version `GLIBC_2.23’ not found 所以才升级glibc的

本来直升级gcc的,后来发现glibc也需要升级。gcc4.8.5升级为gcc5.4.0。升级参考:Centos7 安装GCC5.4.0

glibc简介
glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个操作系统。
查看系统glibc库版本可使用如下命令:

$ strings /lib64/libc.so.6 |grep GLIBC_

大家在遇到glibc库问题时候,可以先考虑下为什么要升级GLIBC库,能够通过其他影响性相对小的方式:

  • 在低版本的系统编译自己的产品,如果自己的产品确实不需要新版才支持的新特性
  • 用版本高的系统来编译,比如ubuntu,和centos的新版,但可能需要部署到较低版本,那么可以考虑用mock等技术制作更好的安装包,把依赖打入包内
  • 利用容器技术,如Docker,在低版本的操作系统内,轻量级的隔离出一个虚拟运行环境,适应你的程序。

升级步骤

1、 首先下载对应版本的安装包

# wget https://ftp.gnu.org/gnu/glibc/glibc-2.23.tar.gz

2、解压、新建编译目录目录

# tar xf glibc-2.23.tar.gz
# cd glibc-2.23/
# mkdir glibc-build
# cd glibc-build (一定要在新建的目录中操作)

3、安装

# ../configure --prefix=/usr
# make
# make install

在make install 时可能会跳出错误(类似的应该是因为软链接的版本不对造成的)

gawk '/\.gnu\.glibc-stub\./ { \
          sub(/\.gnu\.glibc-stub\./, "", $2); \
          stubs[$2] = 1; } \
        END { for (s in stubs) print "#define __stub_" s }' > /root/glibc-2.23/glibc-build/math/stubsT
gawk: error while loading shared libraries: /lib64/libm.so.6: invalid ELF header
make[2]: *** [/root/glibc-2.23/glibc-build/math/stubs] Error 127
make[2]: Leaving directory `/root/glibc-2.23/math'
make[1]: *** [math/subdir_install] Error 2
make[1]: Leaving directory `/root/glibc-2.23'
make: *** [install] Error 2

解决办法(在另外的窗口执行):

# cd /lib64
# unlink libm.so.6
# ln -s libm-2.23.so libm.so.6

然后再次执行make install
看到如下信息就是安装成功了

LD_SO=ld-linux-x86-64.so.2 CC="gcc" /usr/bin/perl scripts/test-installation.pl /root/glibc-2.23/glibc-build/
Your new glibc installation seems to be ok.
make[1]: Leaving directory `/root/glibc-2.23'

4、验证

# ldd --version
ldd (GNU libc) 2.23
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

升级成功!

参考:Centos7 glibc库升级到2.23

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落花逐流水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值