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

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版本:

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

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

原文出处:

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

升级glibc-2.12到glibc-2.15的正确方式相关推荐

  1. linux 查看glibc,Linux平台查看glibc版本

    查看glibc版本的三种方法,总有一款适合你 1.rpm -qa | grep glibc$ rpm -qa | grep glibc glibc-2.3.4-2.19 glibc-devel-2.3 ...

  2. 升级mac最新系统macOS Catalina 10.15

    升级mac最新系统macOS Catalina 10.15 不少人会遇到升级不了最新max系统的情况 比如:此版本的macOS 10.15.1不能按照在这台电脑上 我是10.12升级上去的,普通的从a ...

  3. 2017年度盘点:15个最流行的GitHub机器学习项目 By 机器之心2017年12月21日 15:23 在本文中,作者列出了 2017 年 GitHub 平台上最为热门的知识库,囊括了数据科学、机

    2017年度盘点:15个最流行的GitHub机器学习项目 By 机器之心2017年12月21日 15:23 在本文中,作者列出了 2017 年 GitHub 平台上最为热门的知识库,囊括了数据科学.机 ...

  4. 【FLink】Flink 1.9 升级到 1.12.4 无配置页面 无日志

    文章目录 1.概述 2.场景再现2 2.1 概述 2.2 日志的配置 2.3 加载2个 2.4 缺少文件 2.7 扩展 2.5.1 Flink 默认日志框架 2.5.2 slf4j 基础概念 2.5. ...

  5. 为什么我们要升级到 iOS 12.1.3?

    苹果经过了四个测试版之后终于今天上午正式发布了 iOS 12.1.3.与此同时,tvOS 12.1.2.macOS 10.14.3 和 watchOS 5.1.3 其他三大系统也被同步推送更新. 整体 ...

  6. ios虚拟服务器降级,升级了iOS 12很后悔,没关系手把手教你如何降级!

    原标题:升级了iOS 12很后悔,没关系手把手教你如何降级! 自从iOS 12正式版发布以来,关于使用iOS 12版本手机系统的讨论就异常激烈.很多的粉丝都一直在公众号给我留言吐槽使用iOS 12当中 ...

  7. Primavera P6打补丁patch,从19.12.0.0升级到19.12.11.0

    给Primavera P6打补丁patch,从19.12.0.0升级到19.12.11.0,以下是升级过程 Patch Instructions 补丁 Database This database p ...

  8. flutter嵌入原生组件_Flutter 升级到 1.12.13 后,嵌入Android原生组件的问题

    Flutter 升级到 1.12 后,使用原生Android组件有些变化,需要更新Android代码 关于 Flutter 如何嵌入Android组件请自行百度. 这里我是修改百度地图.import  ...

  9. linux glibc2.12编译,glibc 2.12 升级 2.14

    升级原因 安装saltstack出现报错: Error: Package: PyYAML-3.11-1.el7.x86_64 (salt-latest) Requires: libc.so.6(GLI ...

最新文章

  1. linux 启动nacos报错_nacos在Linux上的搭建启动报错
  2. android adb命令
  3. Swift2.0语言教程之Swift2.0语言中的标准函数
  4. docker Cannot start container [8] System error: exec format error
  5. Gartner:2015年SIEM(安全信息与事件管理)市场分析
  6. 理解Flight框架核心
  7. .NET Core多平台项目模板eShopOnContainers编译手记
  8. 前端学习(3250):一个简单的文件
  9. jqgrid使用本地静态数据创建网格的例子_什么是网格布局?grid布局有哪些优势?开发过程中遇到什么问题?...
  10. 米斯特白帽培训讲义(v2)实战篇 余闻同学录
  11. 中国喷墨卡片打印机行业市场供需与战略研究报告
  12. 解决 HttpClient 模拟 http 的get 请求后 ,出现 403 错误
  13. 百度大脑EasyDL专业版挑战赛正式开启,挑战没有做不到的模型!
  14. 某高手毕生精力总结的电脑技巧
  15. HTML:文本格式化标签
  16. Android Studio 导入安卓源码步骤
  17. Linux 2.6内核配置说明(Device Drivers设备驱动程序)
  18. Python实现简单p2p下载
  19. Vagrant安装和使用
  20. 告诉你一个真实的傅里叶

热门文章

  1. 导致MySQL的查询语句效率低下的可能原因
  2. 分布式身份认证——未来信任生态的基石
  3. 【N32G457】基于RT-Thread和N32G457的可控电流源
  4. 【毕业设计】深度学习驾驶行为状态检测系统(疲劳 抽烟 喝水 玩手机) - opencv python
  5. hover父元素,不希望子元素消失(子元素盒子在下方展开,但鼠标移到子元素时盒子却消失了)
  6. asp毕业设计——基于asp+access的新闻发布系统设计与实现(毕业论文+程序源码)——新闻发布系统
  7. Canvas 绘制点线相交
  8. Mac:scroll reverser触控板和鼠标反转独立设置【free】
  9. 码云推荐 | 那些优秀的网络爬虫工具介绍
  10. 编程比赛项目和时间汇总