升级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,正确的姿势是:
- mkdir -pv /path/to/glibc-2.15/build
- cd /path/to/glibc-2.15/build
- ../configure 参数1.... 参数2 ... 参数3...
5. 不要将 glibc 安装到默认的目录【/usr/local】或者 【任何自定义的目录】,请务必安装到【/usr】目录,否则你就等着被OK吧。
6. 最后建议大家每安装一个软件包,都要仔细阅读下源码包里的 README 以及 INSTALL 文档,很重要不解释。
再说下为什么要升级glibc:
OK,那金牛座为啥要升级glibc呢?因为我正在进行 React Native 开发时项目所依赖的包需要更高版本的glibc库支持, 而Centos6.5 中glibc默认版本为2.12, 比如调试时可能会遇到报错:
- adb: /lib64/libc.so.6: version GLIBC_2.14 not found(required by adb)
- adb: /lib64/libc.so.6: version GLIBC_2.15 not found(required by adb)
这两行报错意味着我们需要对glibc进行升级了,自然是升级到 glibc-2.15 这个高版本才对。
查看系统默认的glibc版本:
- [root@node1 ~]# /lib64/libc.so.6
- GNU C Library stable release version 2.15, by Roland McGrath et al.
- Copyright (C) 2012 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.
- Compiled by GNU CC version 4.4.7 20120313 (Red Hat 4.4.7-18).
- Compiled on a Linux 2.6.32 system on 2018-06-30.
- Available extensions:
- crypt add-on version 2.1 by Michael Glad and others
- GNU Libidn by Simon Josefsson
- Native POSIX Threads Library by Ulrich Drepper et al
- BIND-8.2.3-T5B
- libc ABIs: UNIQUE IFUNC
- For bug reporting instructions, please see:
- <http://www.gnu.org/software/libc/bugs.html>.
编译安装glibc-2.15:
- [root@node1 ~]# mkdir -pv /path/to/glibc-2.15/build
- [root@node1 ~]# cd /path/to/glibc-2.15/
- [root@node1 ~]# wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz
- [root@node1 ~]# tar xzvf glibc-2.15.tar.gz
- [root@node1 ~]# cd /path/to/glibc-2.15/build
- [root@node1 ~]# ../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
- [root@node1 ~]# make
- [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的正确方式相关推荐
- linux 查看glibc,Linux平台查看glibc版本
查看glibc版本的三种方法,总有一款适合你 1.rpm -qa | grep glibc$ rpm -qa | grep glibc glibc-2.3.4-2.19 glibc-devel-2.3 ...
- 升级mac最新系统macOS Catalina 10.15
升级mac最新系统macOS Catalina 10.15 不少人会遇到升级不了最新max系统的情况 比如:此版本的macOS 10.15.1不能按照在这台电脑上 我是10.12升级上去的,普通的从a ...
- 2017年度盘点:15个最流行的GitHub机器学习项目 By 机器之心2017年12月21日 15:23 在本文中,作者列出了 2017 年 GitHub 平台上最为热门的知识库,囊括了数据科学、机
2017年度盘点:15个最流行的GitHub机器学习项目 By 机器之心2017年12月21日 15:23 在本文中,作者列出了 2017 年 GitHub 平台上最为热门的知识库,囊括了数据科学.机 ...
- 【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. ...
- 为什么我们要升级到 iOS 12.1.3?
苹果经过了四个测试版之后终于今天上午正式发布了 iOS 12.1.3.与此同时,tvOS 12.1.2.macOS 10.14.3 和 watchOS 5.1.3 其他三大系统也被同步推送更新. 整体 ...
- ios虚拟服务器降级,升级了iOS 12很后悔,没关系手把手教你如何降级!
原标题:升级了iOS 12很后悔,没关系手把手教你如何降级! 自从iOS 12正式版发布以来,关于使用iOS 12版本手机系统的讨论就异常激烈.很多的粉丝都一直在公众号给我留言吐槽使用iOS 12当中 ...
- 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 ...
- flutter嵌入原生组件_Flutter 升级到 1.12.13 后,嵌入Android原生组件的问题
Flutter 升级到 1.12 后,使用原生Android组件有些变化,需要更新Android代码 关于 Flutter 如何嵌入Android组件请自行百度. 这里我是修改百度地图.import ...
- 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 ...
最新文章
- linux 启动nacos报错_nacos在Linux上的搭建启动报错
- android adb命令
- Swift2.0语言教程之Swift2.0语言中的标准函数
- docker Cannot start container [8] System error: exec format error
- Gartner:2015年SIEM(安全信息与事件管理)市场分析
- 理解Flight框架核心
- .NET Core多平台项目模板eShopOnContainers编译手记
- 前端学习(3250):一个简单的文件
- jqgrid使用本地静态数据创建网格的例子_什么是网格布局?grid布局有哪些优势?开发过程中遇到什么问题?...
- 米斯特白帽培训讲义(v2)实战篇 余闻同学录
- 中国喷墨卡片打印机行业市场供需与战略研究报告
- 解决 HttpClient 模拟 http 的get 请求后 ,出现 403 错误
- 百度大脑EasyDL专业版挑战赛正式开启,挑战没有做不到的模型!
- 某高手毕生精力总结的电脑技巧
- HTML:文本格式化标签
- Android Studio 导入安卓源码步骤
- Linux 2.6内核配置说明(Device Drivers设备驱动程序)
- Python实现简单p2p下载
- Vagrant安装和使用
- 告诉你一个真实的傅里叶
热门文章
- 导致MySQL的查询语句效率低下的可能原因
- 分布式身份认证——未来信任生态的基石
- 【N32G457】基于RT-Thread和N32G457的可控电流源
- 【毕业设计】深度学习驾驶行为状态检测系统(疲劳 抽烟 喝水 玩手机) - opencv python
- hover父元素,不希望子元素消失(子元素盒子在下方展开,但鼠标移到子元素时盒子却消失了)
- asp毕业设计——基于asp+access的新闻发布系统设计与实现(毕业论文+程序源码)——新闻发布系统
- Canvas 绘制点线相交
- Mac:scroll reverser触控板和鼠标反转独立设置【free】
- 码云推荐 | 那些优秀的网络爬虫工具介绍
- 编程比赛项目和时间汇总