现状

默认情况下centos6.5自带的glibc版本为glibc-2.12,很多运行在centos上的应用需要高版本glic才能成功编译和安装,下面一起来升级至glibc-2.18版本吧。

必读

glibc是centos非常底层的基础程序,如果升级失败可能会导致基础命令不好用的情况,千万不要直接退出窗口,这样你就连不进来了。按照解决问题的思路进行处理即可。如果升级失败,先尝试还原glibc,实在不行在重新安装操作系统。如果有快照,建议使用快照进行恢复。

准备

查询当前版本

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

点击如下连接下载glibc-2.18.tar.gz源码包http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gzhttp://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz

安装

将 glibc-2.18.tar.gz上传到centos系统中,运行如下命令,安装过程比较长,预计十分钟。安装之后也可能会遇到其他问题,可以先看看后面的问题解决方法。防止措手不及。

> tar -zxvf glibc-2.18.tar.gz
> cd glibc-2.18
> mkdir build
> cd build
> ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
> make -j4
> make install

验证

> ldd --version
> strings /lib64/libc.so.6 |grep GLIBC_

正确如下

解决问题

export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH
LD_PRELOAD=/lib64/libc-2.18.so rm -fr /lib64/libc.so.6
LD_PRELOAD=/lib64/libc-2.18.so ln -s /lib64/libc-2.18.so /lib64/libc.so.6  

make install 之后可能会遇到以下问题:

make[1]: *** [install] Segmentation fault

error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument

一但上面两个问题出现,你会发现基本命令也失效了。这是因为/lib64/libc.so.6 这个文件已经在安装过程中被改变了。因此,你先尝试运行如下,让你的环境变量和你现在的glibc保持一致:

> export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH
> LD_PRELOAD=/lib64/libc-2.18.so rm -fr /lib64/libc.so.6
> LD_PRELOAD=/lib64/libc-2.18.so ln -s /lib64/libc-2.18.so /lib64/libc.so.6     

然后在尝试基本命令是否正常,如果基本命令正常,验证下glibc是否升级成功。如果很不幸你的glibc升级失败了,继续尝试以下命令,将glibc还原到之前的版本:

> LD_PRELOAD=/lib64/libc-2.12.so rm -fr /lib64/libc.so.6
> LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6

然后在继续尝试基础命令是否好用。基础命令好用之后,继续排查你在升级过程中遇到的问题即可。思路是临时加载之前好用的库文件,然后使用库文件即可恢复系统。

centos6.5升级glibc-2.18相关推荐

  1. Centos6.X升级glibc解决“libc.so.6 version GLIBC_2.14 not found”报错问题

    Centos6.X升级glibc解决"libc.so.6 version GLIBC_2.14 not found"报错问题 参考文章: (1)Centos6.X升级glibc解决 ...

  2. centos 虚拟机glibc升级_分享Centos6.5升级glibc过程

    上次看到有同学对Centos系统 glibc升级有点疑问, 不过相对来说glibc升级还是比较简单的, 网上也有很多介绍文章, 这里整理了个安装过程供大家参考下 阅读原文 场景需求 默认的Centos ...

  3. SUSE glibc升级为2.18过程记录

    先验知识: 1.运行时,动态库的装载依赖于ld-linux.so.6的实现,它查找共享库的顺序如下: (1)ld-linux.so.6在可执行的目标文件中被指定,可用readelf命令查看 (2)ld ...

  4. 简单介绍CentOS6升级glibc操作步骤

    大家好,本篇文章主要讲的是CentOS6升级glibc操作步骤,感兴趣的小伙伴赶紧来看一看吧,对你有帮助的话记得收藏本篇文章哦!方便下次浏览 背景 测试环境有一台CentOS 6系统,需要搭建安卓编译 ...

  5. Linux升级glibc版本汉字乱码,Linux CentOS6升级glibc库过程

    CentOS6升级glibc库过程 hadoop无法加载native库,可能原因是 glibc库版本过低,需要升级. 第一:安装以下软件 yum -y install zlib zlib-devel ...

  6. centos升级glibc至2.18安装wps 2019

    为什么80%的码农都做不了架构师?>>>    官方的glibc源只更新到2.12版,很多业务需要升级到更高级版,这里介绍编译glibc升级的方式. 注意:更新非CentOS官方的g ...

  7. centos6.9中glibc升级失败救援+救援模式挂载硬盘

    centos6.9中glibc2.12升级失败导致系统奔溃的救援+救援模式下挂载硬盘备份数据 起因 在课题组服务器管理员权限下打算安装Rstudio-server时,提示glibc需要2.14及以上版 ...

  8. 升级 glibc 到2.18版本

    $ wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz $ tar -xvf glibc-2.18.tar.gz $ cd glibc-2.18 $ ...

  9. CentOS-6.9升级到Python-3.5

    CentOS-6.9升级Python到3.5 下载Python-3.5 wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz 解压 ...

  10. centos7升级GLIBC版本

    之前在一个Centos7虚拟机上运行目标程序的时候,发现自己的编译环境比目标运行机的centos7系统的glibc版本要高,运行的时候报错,说找不到GLIBC_2.18.于是在该centos7运行 s ...

最新文章

  1. 用leangoo看板工具做可视化工作流
  2. 快速了解和使用Photon Server
  3. Android 开发 技术大纲 某学课堂
  4. Delphi程序自删除
  5. 取得MS SQL 2000数据库一个表的所有列名
  6. Android 别踩白块 源码分析
  7. echarts3.0版本断点连线的处理
  8. 【PostgreSQL-9.6.3】分区表
  9. 1.nodejs介绍
  10. 《机器人学导论》-《计算多体动力学》两本教材角速度传递的理解
  11. 图片alt属性添加方法
  12. 如何查看.o和.exe文件
  13. 阿里云后台部署全过程-3-mysql、supervisor初始化
  14. 便捷效率处理CAD转PDF方法你知道吗?
  15. SI好文翻译:铜箔表面纹理对损耗的影响:一个有效的模型(一)
  16. uniapp 微信小程序 上传图片到服务器
  17. 常见国产卫星参数介绍
  18. vector模拟实现【c++】
  19. 小提琴图解读 - 统计学
  20. 代码随想录训练营day37

热门文章

  1. windows系统注册dll文件
  2. Android 大漠插件功能,猩猩助手安卓模拟器怎么用大漠插件
  3. python分词词典_Python分词模块推荐:结巴中文分词
  4. 计算机组成原理——数据通路
  5. 深度学习——PReLU激活
  6. 最新Hadoop的面试题总结
  7. HICE第七天笔记(OSPF前)
  8. java读取txt文件字符串_java读取txt文件,对字符串进行操作后导出txt文件
  9. 将16进制的字符串转换为对应的字符
  10. 谷歌浏览器插件 清除 CSDN广告