升级glibc的感慨,

1. 直接升级

glibc是gnu发布的libc,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现...

总的来说,不说运行在Linux上的一些应用,或者你之前部署过的产品,就是很多linux的基本命令,比如cp, rm, ll之类,都得依赖于它

网上很多人有惨痛教训,甚至升级失败后系统退出后无法重新进入了。。

对于CentOS这样的系统,为了追求稳定性(这个值得商榷)往往各种库版本都很低,比如6.5甚至7.0自带的还是glibc2.12, 而ubuntu 14.04带glibc2.19

如果升级基本C运行库到一个太新的版本,可能会影响CentOS的运行。所以大家如果遇到CentOS基本库的问题,影响了自己程序的运行,应该可以考虑:

源代码编译升级系统glibc版本,下载glibc从http://ftp.gnu.org/gnu/glibc/下载

先行查看glibc版本,运行 /lib64/libc.so.6  (/lib64/libc.so.6也是一个软链接文件,直接运行就可以看到指向,本文为/lib64/libc-2.12.so

[[email protected] opt]# ll /lib64/libc.so.6

现在得到版本为2.12

glibc2.16以下,需要下载glibc-ports-2.16.0.tar.gz,和对应glibc-2.16.0.tar.gz

cd /opt

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

wget  http://ftp.gnu.org/gnu/glibc/glibc-ports-2.16.0.tar.gz

tar xf glibc-2.16.0.tar.gz

tar xf glibc-ports-2.16.0.tar.gz

ls

[[email protected] opt]# mv glibc-ports-2.16.0 glibc-2.16.0/ports
[[email protected] opt]# mkdir cc
由于glibc编译不能在源代码内编译,所以新建一个文件夹cc
[[email protected] opt]# cd cc
[[email protected] cc]# ../glibc-2.16.0/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
#(直接把glibc编译后安装的代码写入/lib64, 即/usr/lib64,如果缺乏编译gcc ,运行 yum groupinstall "Development tools")

[[email protected] cc]# make

[[email protected] cc]# make install

但是对于一些项目,不能升级glibc 又怎么办呢?

还是参照上面,但是要修改一下

[[email protected] cc]# ../glibc-2.16.0/configure  --prefix=/opt/cc

[[email protected] cc]# make

[[email protected] cc]# make install

然后glibc库文件在 /opt/cc/lib

[[email protected] cc]#export LD_LIBRARY_PATH=/opt/cc/lib:$LD_LIBRARY_PATH

但是centos6.8下运行nodejs,出现了glibc2.16出问题。而2.14正常。

时间: 2024-10-04 20:52:26

升级glibc的感慨,的相关文章

centos环境升级glibc到2.17及过程中遇到的问题

升级glibc到2.17及出现的问题 开发要求libc库最低是2.17,但是我这个是2.12的,当然不能用了,还好,gcc 4.8.5的,直接用来编译升级就好了. 开始前 执行程序的时候报了一个错: /lib64/libc.so.6 version GLIBC_2.14 not found 很明显链接的库不是2.14的.根据 tlpi上所说的,动态加载库有三个名字比较重要.文件名,库名,链接器名,而且用ldconfig 来进行管理与更新.如: realname : libmath.so.1.3

Linux CentOS6升级glibc库过程

CentOS6升级glibc库过程 hadoop无法加载native库,可能原因是 glibc库版本过低,需要升级. 第一:安装以下软件 yum -y install zlib zlib-devel gcc gcc-c++ libtool openssl openssl-devel automake autoconf libtool pcre* 第二.查看系统glibc版本库 strings /lib64/libc.so.6 |grep GLIBC_ 这里我们可以看到系统中最新的版本是2.12,

centos 升级 glibc和glibcxxx ,解决error: Failed dependencies等问题

背景: 在vm中的linux中,安装mysql5.6的过程中,出现了缺少依赖的问题,具体报错如下. 报错一: [[email protected] local]# rpm -ivh MySQL-server-5.6.47-1.el7.x86_64.rpm warning: MySQL-server-5.6.47-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: Failed dependen

Linux升级Glibc

一.简介 glibc是gnu发布的libc库,即c运行库.glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc.glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现... 本文介绍Glibc升级方法,参考:http://www.cppblog.com/prayer/archive/2009/07/22/90836.html 二.升级 步骤如下: wget http://ftp.gnu.org/gnu/glibc/gli

Debian-7.6下升级glibc至2.15

MySql WorkBench, Eclipse-4.4等很多常用开发工具都要求 glibc 版本 >= 2.14,而 Wheezy 仓库中 glibc 最高仅为 2.13.为了让这些工具正常使用,我们只能用 Wheezy unstable 版的 glibc-2.15.升级方法如下: 打开 /etc/apt/sources.list 文件,添加: deb http://ftp.debian.org/debian sid main 执行: sudo apt-get update apt-get -

centos升级glibc动态库

glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc.glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现.很多linux的基本命令,比如cp, rm, ll,ln等,都得依赖于它,如果操作错误或者升级失败会导致系统命令不能使用,严重的造成系统退出后无法重新进入,所以操作时候需要慎重. 1.首先,查看系统版本和Glibc版本 [[email protected] ~]#

Centos6.5 升级glibc解决“libc.so.6: version GLIBC_2.14

研发发来邮件说线上有台服务器跑程序报错,信息如下: /agent: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by./agent)从上面报错可以看出,程序运行时候,没有找到"GLIBC_2.14"这个版本库,而默认的Centos6.5 glibc版本最高为2.12, 所以需要更新系统glibc库 glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依

分享Centos6.5升级glibc过程

默认的Centos6.5 glibc版本最高为2.12, 而在进行Nodejs开发时项目所依赖的包往往需要更高版本的glibc库支持, 因此在不升级系统的前提下, 需要主动更新系统glibc库. 一般遇到错误libc.so.6: version GLIBC_2.14 not found时表示需要对glibc进行升级了. 解决方案可参照下面链接 1 https://cnodejs.org/topic/56dc21f1502596633dc2c3dc 原文地址:https://www.cnblogs

centos6.9 升级glibc(升级到 2.17版)

原系统centos6.9自带GLIBC_2.12,安装一些软体提示版本不对,决定升级. wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz tar -xvf glibc-2.17.tar.gz cd glibc-2.17 mkdir build; cd build ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include -