GLIBC 升级安装与 SCL 知识盲区
前言
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.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_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 的具体使用和操作,网上有很多的教程,这里暂不涉及,后续根据需要再行一一介绍。



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



本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
GLIBC 升级安装与 SCL 知识盲区的更多相关文章
- <未测>源码升级安装glibc和rpm升级glibc
源码升级安装glibc和rpm升级glibc http://jacklin9.spaces.live.com/blog/cns!A891B52E1182AFB2!346.entry http://bl ...
- 【linux】glibc升级
glibc升级 步骤如下: 1.下载解压glibc wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz tar zxvf glibc-2.18.ta ...
- glibc升级,解决glib版本过低的问题
Debian wheezy下的glibc版本为2.13,安装几个软件都运行不了,报以下类似错误:xxxx: /lib/i386-linux-gnu/i686/cmov/libc.so.6: versi ...
- GLIBC升级
GLIBC升级 1.安装 1.1 说明 目前大部分架构都已经是GLIBC2.14了,难免会有一些老的机器会是GLIBC2.12,所以下面是我升级GLIBC的过程及步骤. GLIBC是系统核心服务,升级 ...
- Windows升级(安装)MySQL 5.7.x 解压版 + 异常处理
说明 版本升级(个人原因): 因为5.5的版本不能执行如下sql语句,故卸装5.5升级安装mysql-5.7.15: `timeName` timestamp(3) NULL DEFAULT NULL ...
- android开发 更新升级安装到一半自动闪退
如题:android开发 更新升级安装到一半自动闪退,,,解决办法,如下(红色为我新增的代码) /** * 安装APK文件 */ private void installApk( ...
- 升级安装php7要考虑的几个方面
php7从推出到现在,前两天官方已经发布到7.2版本,把自己升级和安装php7中遇到的问题和解决方法做一个笔记,内容主要包括:1) mysql2) php3) nginx4) memcache扩展5) ...
- 6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇-优化升级(安装Apache (Web服务器)软件,测试HTTP)
为了和SDK升级保持协议一致,花了两天时间实现了用LUA开发,MQTT+HTTP方式实现远程升级 安装Apache主要是为了实现通过HTTP下载资源 升级介绍: 0,用户点击检查更新时,APP首先通过 ...
- centos6 升级安装openssh7
1.准备工作: 查看下当前SSH版本: [root@bogon ~]# ssh -V OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013 或者 [root@b ...
- FileProvider N 7.0 升级 安装APK 选择文件 拍照 临时权限 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
随机推荐
- Cesium 后处理(Post Process)
原文地址:https://blog.csdn.net/ls870061011/article/details/123910821 作者:GIS李胜 为实现三维模型的更炫.更酷.更美观,Cesium在1 ...
- Moebius兼容AlwaysOn
背景 数据库是信息化的基石,支撑着整个业务系统,发挥着非常重要的作用,被喻为"IT的心脏".因此,让数据库安全.稳定.高效地运行已经成为IT管理者必须要面对的问题.数据库在底层架构 ...
- 【ACM算法竞赛日常训练】DAY2题解与分析【比赛】【数学考试】【简单瞎搞题】
DAY2共三题: 比赛(概率) 数学考试(前缀和与思维) 简单瞎搞题(dp) 视频讲解:https://www.bilibili.com/video/BV1hP411o7RD/ 作者:Eriktse ...
- 算法学习笔记(20): AC自动机
AC自动机 前置知识: 字典树:可以参考我的另一篇文章 算法学习笔记(15): Trie(字典树) KMP:可以参考 KMP - Ricky2007,但是不理解KMP算法并不会对这个算法的理解产生影响 ...
- Windows的压缩文件夹(zip/cab)
https://weibo.com/1114096665/DtHXgvnva #windows10# 硬要把zip.cab文件当文件夹,不爽怎么解决? 删除注册表 "HKEY_CLASSES ...
- 【装饰器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
简介 装饰器模式(Decorator Pattern)是一种结构型设计模式.将对象放入到一个特殊封装的对象中,为这个对象绑定新的行为,具备新的能力,同时又不改变其原有结构. 如果你希望在无需修改代码的 ...
- [IDE]IntelliJ IDEA 不能识别 Java 项目 [转]
本文转载自 IntelliJ IDEA 不能识别 Java 项目 - 博客园/SmartJuneThx 解决方法 非maven项目 在 src 目录上点右键,选择 Mark Directory As ...
- Linux(五)用户管理与文件权限
1 常用的基本命令 Shell可以看作一个命令解释器,为我们提供一个交互式的文本控制台界面,可以通过终端控制台来输入命令,由shell进行解释并最终交给linux内核运行.可以看作用户和硬件的桥梁. ...
- 【深度学习】【图像分类网络】(二)VisionTransformer
Transformer简介 ![1png](file:///D:/资料/学习笔记/深度学习/图像分类/transformer/Self-Attention以及Multi-Head Attention/ ...
- 10分钟理解React生命周期
前言 学习React,生命周期很重要,我们了解完生命周期的各个组件,对写高性能组件会有很大的帮助. 一.简介 React /riˈækt/ 组件的生命周期指的是组件从创建到销毁过程中所经历的一系列方法 ...