前言

glibc 是 GNU 发布的 libc 库,即 c 运行库。glibc 是 linux 系统中最底层的 api,几乎其它任何运行库都会依赖于 glibc。glibc 除了封装 linux 操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个作业系统。在 GNU/Linux 系统中,其 C 函式库发展史点出了 GNU/Linux  演进的几个重要里程碑,用 glibc 作为系统的 C 函式库,是 GNU/Linux 演进的一个重要里程碑。

在 CentOS 6.5 最高支持 glibc 的版本为 2.12,而有些程序要 2.14 版本,所以需要升级或者额外安装。

$ strings /lib64/libc.so.6 |grep GLIBC_GLIBC_2.2.5GLIBC_2.2.6GLIBC_2.3GLIBC_2.3.2GLIBC_2.3.3GLIBC_2.3.4GLIBC_2.4GLIBC_2.5GLIBC_2.6GLIBC_2.7GLIBC_2.8GLIBC_2.9GLIBC_2.10GLIBC_2.11GLIBC_2.12GLIBC_2.13GLIBC_2.14GLIBC_PRIVATE

由于  glibc 是一个比较底层的依赖库,为了 CentOS 6 安全,你可能不太想冒着风险直接升级,特别是对于一些运行这其他业务的服务器。前车之鉴就在这里!

一次"幸运的"集群操作与修复经历

安装

但是,您可以轻松地在 2.12 的基础上并排安装 2.14,然后使用它来编译项目等。方法如下:

$ mkdir ~/glibc_install; cd ~/glibc_install 

$ wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

$ tar zxvf glibc-2.14.tar.gz

$ cd glibc-2.14

$ mkdir build

$ cd build

$ ../configure --prefix=/opt/glibc-2.14

$ make -j4

$ make install

$ export LD_LIBRARY_PATH="/opt/glibc-2.14/lib:$LD_LIBRARY_PATH"

总结

感谢小伙伴留言中提到的 devtoolset 工具,这对我而言是以前没接触过的知识盲区,先简单看一下,以待后续深入了解。

背景

CentOS/RHEL Linux 发行版以稳定性著称,所有的软件都要尽可能 stable,导致的一个结果就是基础软件的版本非常的低,比如 CentOS 6.7(15年发布) 中 gcc 版本还是 4.4.7(12年的版本)。这对开发来说就不是很友好,比如我们想用 C++ 11 中的某个特性,就必须自己编译一个高版本的 gcc 出来,但是这会有另外一个问题,开发环境不好维护,如果自己有多台电脑或者多个人合作的项目,每台机器上都要自己编一份,维护起来就比较麻烦。

SCL

SCL(Software Collections)是一个 CentOS/RHEL Linux 平台的软件多版本共存解决方案,为 RHEL/CentOS  Linux 用户提供一种方便、安全地安装和使用应用程序和运行时环境的多个版本的方式,同时避免把系统搞乱。

SCL 项目主页:https://www.softwarecollections.org

devtoolset

不同平台的编译环境不一样,所以 RedHat 就推出了 scl (Software Collections) ,它可以根据 devtoolset 一起配合来快速统一开发环境,不用一个个的去找各个官网再去编译源码安装。

使用 scl 可以暂时的改变当前用户的编译工具,例如你的系统版本 gcc 4.4.7 但是你可以使用 scl 工具它可以临时的把你的 gcc 版本提升到 4.8。

其实,简单的来说,devtoolset 就是 SCL 提供的一套专门用于 CentOS 或 Red Hat Enterprise Linux 平台编译开发的一套工具集。

Developer Toolset is designed for developers working on CentOS or Red Hat Enterprise Linux platform. It provides current versions of the GNU Compiler Collection, GNU Debugger, and other development, debugging, and performance monitoring tools.


当然,除了 devtoolset 这些专门用于编译开发的工具集,SCL 上还有其他的很多工具集,如 Ruby,Redis,nginx 等等。


关于 devtoolset + scl 的具体使用和操作,网上有很多的教程,这里暂不涉及,后续根据需要再行一一介绍。

服务器又中毒了,得治一治!

2021-08-03

生信服务器 | 防火墙基本配置

2021-07-26

生信服务器 | 更改 CentOS/RHEL 6/7 中的时区

2021-05-27

生信服务器 | Linux 时间戳和标准时间

2021-01-21

生信服务器入门级基本设置

2020-06-05

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

GLIBC 升级安装与 SCL 知识盲区相关推荐

  1. Linux发行版和安装的基本知识(转)

    Linux发行版和安装的基本知识(转) 一.Linux发行版的基本知识 虽然Linux的基础是其内核(kernel),但是光有内核还远不是一个完整可用的操作系统环境.这里 我们要讲述一些关于Linux ...

  2. linux系统发行版安装,Linux 发行版和安装的基本知识

    Linux 发行版和安装的基本知识 更新时间:2006年10月24日 00:00:00   作者: 一.Linux发行版的基本知识 虽然Linux的基础是其内核(kernel),但是光有内核还远不是一 ...

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

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

  4. NodeJS v0 10 8升级安装

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Node ...

  5. linux下TSL如何升级,glibc升级

    将系统自带的glibc 2.3.4 升级到 glibc2.5 工作环境:redhat AS 4  2.6.9 注意:必须准备系统启动盘,或者其它工具(当系统无法启动时) 今日下载了飞信安装程序以及库文 ...

  6. Centos6.5 glibc 升级

    libnuma.so.1共享库安装 yum install libnuma* http://blog.itpub.net/8183550/viewspace-1820856/ 运行以下命令检查动态库c ...

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

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

  8. Windows Server 2008 升级安装

    1.放入Windows Server 2008的安装光盘,打开光盘,双击"setup",弹出的窗口,选择"现在安装": 2.选择"不获取最新安装更新& ...

  9. windows7升级安装之初体验

    这周终于下定决心安装windows7.因为之前已经习惯了使用正版激活的操作系统了,所以在没有确实可以激活之前还是不太轻易的安装. 由于工作的原因机器上安装了很多的软件,因为不希望重新格式化安装操作系统 ...

最新文章

  1. 常用网站--前端开发类+网页设计类+平面素材类+flash类
  2. 056_Connect or Sync to your Salesforce database by using an external database
  3. python 內建数据类型
  4. codevs原创抄袭题 5960 信使
  5. 好轮子收藏:一个支持几乎所有流行格式的图像加载库stb_image.h
  6. 20年研发管理经验谈(七)
  7. c语言 error c4028,在Visual Studio2010中,“警告C4028:正式參數1與聲明不同”顯示。...
  8. 开源的魔兽世界参考架构——mangos--网络游戏引擎BigWorld 服务器介绍
  9. GD32 startup.s
  10. IntelliJ IDEA插件的Jrebel激活踩坑【内网离线使用】
  11. 【学习资源分享】在线学习平台推荐
  12. 自己制作机器学习训练和测试使用的二进制数据集(C++)
  13. python和java可以一起学吗_python可以和java一起学吗
  14. ESMap平台在线开发工具介绍-易景空间地图
  15. 如何获取主机名和当前登录用户名
  16. Ubuntu18.04下更改apt源为阿里云源
  17. 大众点评:开放质疑与阿里竞争
  18. 【UE4】创建首个关卡
  19. AC_AttitudeControl_Heli.cpp的AC_AttitudeControl_Heli::rate_target_to_motor_yaw函数代码分析
  20. 小程序开发经验分享(2)前端开发

热门文章

  1. 我成功攻击了Tomcat服务器,大佬们的反应亮了
  2. 三次握手+四次挥手,一文搞定所有!历史最佳剖析!
  3. Redis详解和实战--云平台技术栈16
  4. 电子商务网站是这样诞生的
  5. PingCode 是用来干嘛的?
  6. 分布式概念-如何访问到分布式系统中的服务
  7. 可集成DevOps的Scrum敏捷工具!
  8. ubuntu安装QQ
  9. 爬虫的系统框架组成-解析器
  10. C++关系运算符和关系表达式