centons6升级gcc和glibc版本
一、先升级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.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_PRIVATE[root@localhost ~]# rpm -qa |grep glibcglibc-common-2.12-1.209.el6_9.2.x86_64glibc-2.12-1.209.el6_9.2.x86_64glibc-headers-2.12-1.209.el6_9.2.x86_64glibc-devel-2.12-1.209.el6_9.2.x86_64可以看到最高只支持2.12版本。现在需要将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]# lltotal 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/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.6lrwxrwxrwx 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.6lrwxrwxrwx 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.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最高可以支持到2.14版本了。 然后再执行leveldb程序,就会发现不会有那个报错了!问题得到解决!centons6升级gcc和glibc版本的更多相关文章
- 在CentOS 7.2下升级gcc编译器的版本
默认情况下,CentOS 7.2预装的gcc版本是4.8.x,通过执行命令 gcc -v 可以看到,一般情况下这个版本的编译器已经满足需要了,但是某些特殊的时候为了支持C++更高的特性,需要对gcc编 ...
- 通过yum升级gcc/g++至版本4.8.2
最近在坐一个日期处理的问题,需要安装sxtwl模块,但是gcc版本4.7死活也安装不上,最后测试到只能升级gcc版本到4.8才得以解决 [root@123 bin]# gcc -vUsing buil ...
- Mac OS 下升级gcc遇到的坑
为了升级gcc,原来版本是4.8,想升级到4.9,因为在Mac上安装cocoNLP一直出错,想试试看是不是gcc版本太低的原因,因此在此想要升级到4.9 经历了三个问题: - brew update太 ...
- CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update.... yum install 或者 添加y ...
- 【转】CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
原文地址:https://www.cnblogs.com/lzpong/p/5755678.html 我这里是centos7 升级到gcc8.1,过程差不多,参考这篇文章,记录一下. ---原文--- ...
- Linux(CentOS)升级gcc版本
本人使用的是CentOS 6.2 64位系统,由于在安装系统的时候并没有勾选安装gcc编译器,因此需要自行安装gcc编译器. 系统信息查看命令: cat /etc/redhat-release 使用y ...
- Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本
如果没记错的话,阿里云ECS上的Ubuntu也是LTS版本. 如果还在使用较旧版本的Ubuntu,或者是Ubuntu LTS,那么我们是很难体验新版gcc的.怎么办呢? 我们或许可以自己去编译用旧版本 ...
- Mac中使用port升级gcc版本
Mac OS中的gcc版本可能不会满足实际使用要求,需要对其升级. 这里介绍使用port方式来升级gcc版本.Macports是Mac OS中的软件包管理工具. 首先,安装Macports 这里提供O ...
- Centos7升级gcc版本方法之一使用scl软件集
Centos7 gcc版本默认4.8.3,Red Hat 为了软件的稳定和版本支持,yum 上版本也是4.8.3,所以无法使用yum进行软件更新,所以使用scl. scl软件集(Software Co ...
随机推荐
- Kotlin定义静态变量、静态方法
Kotlin定义静态变量.静态方法kotlin定义静态变量.方法可以采用伴生对象companion object的方式. 经典例子,实例化Fragment. java写法: public class ...
- vue 字符串长度控制显示的字数超出显示省略号
1. html <p class="index__Feature-list-itemlist-title newline"> {{item.name| ellipsis ...
- bzoj2004 [Hnoi2010]Bus 公交线路 矩阵快速幂+状压DP
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=2004 题解 如果 \(N\) 没有那么大,考虑把每一位分配给每一辆车. 假设已经分配到了第 \ ...
- Es学习第十一课,使用java操作elasticsearch
前面十节课我们已经把ES的基本概念和使用讲的差不多了,现在我们就用基于java来实际开发一个操作ES的小项目,带大家来一起练练手. 1.我们用IDEA创建一个maven项目 项目结构如上图所示,然后我 ...
- call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数
<?php function foobar($arg, $arg2) { echo __FUNCTION__, " got $arg and $arg2\n"; } clas ...
- JS中JSON.stringify()方法,将js对象(json串)转换成字符串,传入服务器
JSON 通常用于与服务端交换数据. 在向服务器发送数据时一般是字符串. 我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串. 语法 JSON.string ...
- Web核心之最简单最简单最简单的登录页面
需求分析: 在登录页面提交用户名和密码 在Servlet中接收提交的参数,封装为User对象,然后调用DAO中的方法进行登录验证 在DAO中进行数据库查询操作,根据参数判断是否有对象的用户存在 在Se ...
- javaScript的关键字与保留字
JavaScript 关键字: break case catch continue default delete do else finally for function if in instance ...
- BZOJ 2694: Lcm 莫比乌斯反演 + 积性函数 + 线性筛 + 卡常
求 $\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)\mu(gcd(i,j))^2$ $\Rightarrow \sum_{d=1}^{n}\mu(d)^2\sum_{i ...
- 在使用KVO遇到的一个问题
在项目开发中定义了一个单例对象RHUserData的对象,RHOLUserInfo类是单例对象的一个property属性,RHOLUserInfo里面有个userId的属性,在其他类里面进行设置KVO ...