一、先升级gcc

这里配置yum源来升级

centos6系列更换阿里yum源

1.首先备份原来的cent os官方yum源

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

2.获取阿里的yum源覆盖本地官方yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

3.清理yum缓存,并生成新的缓存

yum clean all
yum makecache

二、升级glibc版本到指定版本,也可以自己下载别的版本

1)产生原因
是由于Linux系统的glibc版本太低,而软件编译时使用了较高版本的glibc引起的!

查看系统glibc支持的版本
[root@localhost ~]# 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_PRIVATE
 
[root@localhost ~]# rpm -qa |grep glibc
glibc-common-2.12-1.209.el6_9.2.x86_64
glibc-2.12-1.209.el6_9.2.x86_64
glibc-headers-2.12-1.209.el6_9.2.x86_64
glibc-devel-2.12-1.209.el6_9.2.x86_64
 
可以看到最高只支持2.12版本。现在需要将glibc支持的版本升级到GLIBC_2.14
 
2)升级glibc支持的版本到GLIBC_2.14
 
到http://www.gnu.org/software/libc/下载最新版本,这里下载了glibc-2.14.tar.xz 这个版本,解压到/usr/local/src目录下
百度云盘下载地址:https://pan.baidu.com/s/1YGia4YD45s42xMq9VapJow
提取密码:nejp
    
[root@uatblockchain01 ~]# cd /usr/local/src/
[root@uatblockchain01 src]# ll
total 9888
-rw-r--r-- 1 root root 10122492 Apr  8 03:21 glibc-2.14.tar.xz
[root@uatblockchain01 src]# tar -vxf glibc-2.14.tar.xz
    
创建/var/VMdisks,将解压后的glibc-2.14移到/var/VMdisks目录下
[root@uatblockchain01 src]# mkdir -p /var/VMdisks
[root@uatblockchain01 src]# mv glibc-2.14 /var/VMdisks/
    
在glibc源码目录建立构建目录,并cd进入构建目录
[root@uatblockchain01 src]# cd /var/VMdisks/glibc-2.14/
[root@uatblockchain01 glibc-2.14]# mkdir build && cd build/
[root@uatblockchain01 build]# ../configure --prefix=/usr/local/glibc-2.14
[root@uatblockchain01 build]# make -j4
[root@uatblockchain01 build]# make install
 
执行make install时出现:

/media/linux_install_ai/glibc-2.14/build/elf/ldconfig:

Can't open configuration file/opt/glibc-2.14/etc/ld.so.conf: No such file or directory

make[1]: Leaving directory`/media/linux_install_ai/glibc-2.14'

[root@www build]# find / -name"ld.so.conf"

/etc/ld.so.conf
[root@www build]# cp/etc/ld.so.conf /opt/glibc-2.14/etc/
make install OK!

    
临时修改环境变量
[root@uatblockchain01 build]# export LD_LIBRARY_PATH=/usr/local/glibc-2.14/lib:$LD_LIBRARY_PATH
[root@uatblockchain01 build]# echo $LD_LIBRARY_PATH
/opt/glibc-2.14/lib:
================================================================================================
注意:
这里环境变量要如上一样临时修改,决不能写在/etc/profile文件里,并source使之生效!否则会导致某些shell命令执行不了。
比如:
[root@uatblockchain01 build]# vim /etc/profile
.......
export LD_LIBRARY_PATH=/usr/local/glibc-2.14/lib:$LD_LIBRARY_PATH
[root@uatblockchain01 build]# source /etc/profile
 
这样,将会出现一些命令卡住的现象。
[root@uatblockchain03 ~]# java -version      //一直卡着不动
 
[root@uatblockchain03 ~]# su - app           //一直卡着不动
 
解决办法:
将上面那条配置从/etc/profile文件里删除,然后source使之生效!
重新登录机器即可解决!
================================================================================================
 
如果是在普通用户下,就修改普通用户下的环境变量。比如这里我是在app账号下启动的leveldb程序,那么:
[app@uatblockchain01 ~]$ export LD_LIBRARY_PATH=/usr/local/glibc-2.14/lib:$LD_LIBRARY_PATH
[app@uatblockchain01 ~]$ echo $LD_LIBRARY_PATH
/opt/glibc-2.14/lib:
    
修改/lib64/libc.so.6的软链接来源,由之前的libc-2.12.so修改为libc-2.14.so
[root@uatblockchain01 ~]# cd /lib64
[root@uatblockchain01 ~]# ll libc.so.6
lrwxrwxrwx 1 root root 12 Apr  8 03:50 libc.so.6 -> libc-2.12.so
    
[root@uatblockchain01 ~]# ll /usr/local/glibc-2.14/lib/libc-2.14.so
-rwxr-xr-x 1 root root 9645192 Apr  8 03:28 /usr/local/glibc-2.14/lib/libc-2.14.so
[root@uatblockchain01 ~]# cp /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/
    
删除libc-2.12.so之前的软链接
[root@uatblockchain01 ~]# unlink /lib64/libc.so.6
或者直接执行
[root@uatblockchain01 ~]# rm -f /lib64/libc.so.6
==============================================================================================
如果上面删除命令执行后,导致该机器的很多shell命令无法执行!甚至于机器无法登陆!报错如下:
error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    
注意:千万不要关闭当前的终端窗口,因为此时机器可能无法登陆了。只能在当前终端窗口下进行紧急修复:
[root@uatblockchain01 ~]# ldconfig
  
原因可能是:前面设置"export LD_LIBRARY_PATH= "有误导致的。
linux调用so的库文件时,搜素路径为当前路径,再是系统lib目录。
可能是由于前面提供了一个LD_PRELOAD系统变量来改变这个顺序。
设置LD_PRELOAD了后,库加载的顺序就改变了。
搜素路径为:LD_PRELOAD ,当前路径,再是系统lib目录。
==============================================================================================
    
然后做/lib64/libc.so.6新的软链接,软链接到libc-2.14.so
[root@uatblockchain01 lib64]# ln -s libc-2.14.so /lib64/libc.so.6
[root@uatblockchain01 lib64]# ll libc.so.6
lrwxrwxrwx 1 root root 12 Apr  8 03:50 libc.so.6 -> libc-2.14.so
    
最后再查看系统glibc支持的版本:
[root@uatblockchain01 lib64]# 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最高可以支持到2.14版本了。
    
然后再执行leveldb程序,就会发现不会有那个报错了!问题得到解决!

centons6升级gcc和glibc版本的更多相关文章

  1. 在CentOS 7.2下升级gcc编译器的版本

    默认情况下,CentOS 7.2预装的gcc版本是4.8.x,通过执行命令 gcc -v 可以看到,一般情况下这个版本的编译器已经满足需要了,但是某些特殊的时候为了支持C++更高的特性,需要对gcc编 ...

  2. 通过yum升级gcc/g++至版本4.8.2

    最近在坐一个日期处理的问题,需要安装sxtwl模块,但是gcc版本4.7死活也安装不上,最后测试到只能升级gcc版本到4.8才得以解决 [root@123 bin]# gcc -vUsing buil ...

  3. Mac OS 下升级gcc遇到的坑

    为了升级gcc,原来版本是4.8,想升级到4.9,因为在Mac上安装cocoNLP一直出错,想试试看是不是gcc版本太低的原因,因此在此想要升级到4.9 经历了三个问题: - brew update太 ...

  4. CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)

    ---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update....   yum install 或者 添加y ...

  5. 【转】CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)

    原文地址:https://www.cnblogs.com/lzpong/p/5755678.html 我这里是centos7 升级到gcc8.1,过程差不多,参考这篇文章,记录一下. ---原文--- ...

  6. Linux(CentOS)升级gcc版本

    本人使用的是CentOS 6.2 64位系统,由于在安装系统的时候并没有勾选安装gcc编译器,因此需要自行安装gcc编译器. 系统信息查看命令: cat /etc/redhat-release 使用y ...

  7. Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本

    如果没记错的话,阿里云ECS上的Ubuntu也是LTS版本. 如果还在使用较旧版本的Ubuntu,或者是Ubuntu LTS,那么我们是很难体验新版gcc的.怎么办呢? 我们或许可以自己去编译用旧版本 ...

  8. Mac中使用port升级gcc版本

    Mac OS中的gcc版本可能不会满足实际使用要求,需要对其升级. 这里介绍使用port方式来升级gcc版本.Macports是Mac OS中的软件包管理工具. 首先,安装Macports 这里提供O ...

  9. Centos7升级gcc版本方法之一使用scl软件集

    Centos7 gcc版本默认4.8.3,Red Hat 为了软件的稳定和版本支持,yum 上版本也是4.8.3,所以无法使用yum进行软件更新,所以使用scl. scl软件集(Software Co ...

随机推荐

  1. sq - 压缩一个排过序的单词列表 unsq - 解压一个排过序的单词列表

    总览 (SYNOPSIS) sq < infile > outfile unsq < infile > outfile 描述 (DESCRIPTION) sq 压缩 一个 排过 ...

  2. MySQL --12 备份的分类

    目录 物理备份(Xtrabackup) 1.全量备份 2.增量备份及恢复 3.差异备份及恢复 4.实战:企业级增量恢复实战 物理备份(Xtrabackup) Xtrabackup安装 #下载epel源 ...

  3. CodeForces - 343D 树链剖分

    题目链接:http://codeforces.com/problemset/problem/343/D 题意:给定一棵n个n-1条边的树,起初所有节点权值为0,然后m个操作. 1 x:把x为根的子树的 ...

  4. WriteDataToFile(filename,pJsonData,strlen(pJsonData)+1)

    WriteDataToFile(filename,pJsonData,strlen(pJsonData)+1) 字节流的长度计算 发送的txt 文件是对的 zip exe出现字节计算错误 strlen ...

  5. 对OpenStack运维架构的总结(转)

    这里,仅从技术角度出发,谈谈OpenStack云平台在部署.架构和运维实施等方面的感想. 缘起,在2014年大二首次接触到OpenStack,当时国内外资料远没有当前这么丰富,为安装一个OpenSta ...

  6. Nginx的简单使用

    一.Nginx概述 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.它的特点是支持高并发:资源消耗少:可以做HTTP反向代 ...

  7. jmeter 参数化2_CSV Data Set Config

    CSV Data Set Config:适用于参数取值范围较大的时候使用,该方法具有更大的灵活性 操作路径:HTTP取样器-->Add-->Config Element-->CSV ...

  8. ROS环境下使用Wireshark抓包(网桥)

    在ROS的管理工具>数据包探测设置里>常规接口选为LAN,数据流>数据流启用>服务器:Wireshark电脑的IP,筛选> IP选要抓包的IP地址 然后在Wireshar ...

  9. Linux中Hard link和Symbol link的区别

    Hard link Hard link不能指向不在同一磁盘的文件 Hard link不能指向目录 Hard link与源文件几乎没有区别.只能通过ls -li看出link关系.另外,删除源文件后,Ha ...

  10. 以IP地址的形式访问网站

    一致以来我都习惯于用域名的方式来访问网站,看到同事用IP地址来访问网站,也仅仅只是好奇,试了一下也没成功,于是就放弃了. 最近发布了站点,客户并没有提供域名,于是通过IP地址访问的方法又在我的脑子里蹦 ...