升级glibc-2.12到glibc-2.15的正确方式

很有必要先说下注意事项:

1. 严重声明大家在升级glibc时一定要特别特别特别的谨慎和小心,除非确定升级的必要,否则不要随意升级glibc,因为会带来很大的麻烦。

2. 金牛座是在升级glibc后【姿势基本正确,但是这是不够的】,经过各种折腾,最后把系统玩死了【好在是虚拟机】,经过血的教训【不过,折腾有折腾的好,学到了很多LINUX动态库的有趣玩法,比如 pathelf 这个神器】,金牛座通过完全重装系统,梳理出了升级glibc的正确正确姿势,并分享给大家以防走弯路,请大家务必按严格按照本文的指令效仿操作。

3. 很多人任性的升级glbc之后,普遍都会遇到一个类似问题就是:"......误删了/lib64/libc.so.6......",然后一番折腾虽然也能解决问题,但是事实上里面的痛苦谁折腾谁知道,根本原因就是安装姿势不正确,那么要是误删了怎么办,请自行google关键字【LD_PRELOAD】,它可以帮你起死回生。

4. 不要在 glibc源码包里直接执行 ./configure 指令,否则你就等着被KO吧,假如安装包位置是: /path/to/glibc-2.15,正确的姿势是:

 
  1. mkdir -pv /path/to/glibc-2.15/build
  2. cd /path/to/glibc-2.15/build
  3. ../configure 参数1.... 参数2 ... 参数3...

5. 不要将 glibc 安装到默认的目录【/usr/local】或者 【任何自定义的目录】,请务必安装到【/usr】目录,否则你就等着被OK吧。

6. 最后建议大家每安装一个软件包,都要仔细阅读下源码包里的 README 以及 INSTALL 文档,很重要不解释。

再说下为什么要升级glibc:

OK,那金牛座为啥要升级glibc呢?因为我正在进行 React Native 开发时项目所依赖的包需要更高版本的glibc库支持, 而Centos6.5 中glibc默认版本为2.12, 比如调试时可能会遇到报错:

 
  1. adb: /lib64/libc.so.6: version GLIBC_2.14 not found(required by adb)
  2. adb: /lib64/libc.so.6: version GLIBC_2.15 not found(required by adb)

这两行报错意味着我们需要对glibc进行升级了,自然是升级到 glibc-2.15 这个高版本才对。

查看系统默认的glibc版本:

 
  1. [root@node1 ~]# /lib64/libc.so.6
  2. GNU C Library stable release version 2.15, by Roland McGrath et al.
  3. Copyright (C) 2012 Free Software Foundation, Inc.
  4. This is free software; see the source for copying conditions.
  5. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
  6. PARTICULAR PURPOSE.
  7. Compiled by GNU CC version 4.4.7 20120313 (Red Hat 4.4.7-18).
  8. Compiled on a Linux 2.6.32 system on 2018-06-30.
  9. Available extensions:
  10. crypt add-on version 2.1 by Michael Glad and others
  11. GNU Libidn by Simon Josefsson
  12. Native POSIX Threads Library by Ulrich Drepper et al
  13. BIND-8.2.3-T5B
  14. libc ABIs: UNIQUE IFUNC
  15. For bug reporting instructions, please see:
  16. <http://www.gnu.org/software/libc/bugs.html>.

编译安装glibc-2.15:

 
  1. [root@node1 ~]# mkdir -pv /path/to/glibc-2.15/build
  2. [root@node1 ~]# cd /path/to/glibc-2.15/
  3. [root@node1 ~]# wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz
  4. [root@node1 ~]# tar xzvf glibc-2.15.tar.gz
  5. [root@node1 ~]# cd /path/to/glibc-2.15/build
  6. [root@node1 ~]# ../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
  7. [root@node1 ~]# make
  8. [root@node1 ~]# make install

核查下更新后的glibc版本:

44.png

从截图上我们可以看到2.12版本的旧库文件依然存在,而且还多了2.15版本的库文件,而且软链接文件全部指向了2.15版本。

再次核查下更新后的glibc版本:

44.png

原文出处:

http://www.blogdaren.com/post-2420.html?from=timeline

glibc(GNU C Library)是Linux操作系统中的C语言库,提供了许多函数和组件供开发人员使用。在某些情况下,用户或开发人员可能需要将glibc-2.14降级到glibc-2.12。这可能是因为某些软件或应用程序与glibc-2.12兼容,但在glibc-2.14上运行出现问题。 要将glibc-2.14降级到glibc-2.12,首先需要查找并下载glibc-2.12的源代码。可以从官方网站或其他可信的软件仓库中获取源代码。然后,需要进行编译和安装。 在安装glibc-2.12之前,可能需要卸载或删除当前系统中已安装glibc-2.14版本。卸载glibc-2.14可能会导致系统不稳定或无法启动,因此在执行此操作之前应备份系统或确认可恢复系统状态。 编译和安装glibc-2.12的过程可能会有一些复杂性,并需要具备一定的编程知识和技能。首先,需要进入glibc-2.12源代码所在的目录,并执行`configure`命令以生成编译环境。然后,使用`make`命令编译源代码,并使用`make install`命令安装glibc-2.12安装完成后,可能需要进行一些配置,例如更新动态链接器或库的路径。这样确保系统在运行时使用glibc-2.12而不是glibc-2.14。 需要注意的是,将glibc-2.14降级到glibc-2.12可能会导致系统稳定性或兼容性问题。降级glibc可能会影响系统中其他软件的功能和性能。因此,在执行此操作之前,建议先了解软件或应用程序对glibc版本的要求,并评估降级是否是唯一的解决方案。 总之,将glibc-2.14降级到glibc-2.12需要下载、编译和安装glibc-2.12的源代码,并进行一些系统配置。但需要谨慎操作,确保降级前后的系统稳定性和兼容性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值