升级前提

源码编译需要至少要有一个可用的gcc编译器。

可以用过yum自动安装或者手动下载rpm包安装。

通过yum可以看到至少需要下面这些安装包,所以可以到许多rpm package站点中搜索下载相应的rpm包,不过版本要搞对了,这个yum搜出来的版本是针对4.4.7的。所以需要什么版本gcc就寻找什么版本对应的依赖包。现在的rpm站点都会说明这个软件包依赖哪些软件包,被哪些软件包依赖,非常方便,不过找起来还是比较耗时的。

CentOS 6.6编译安装GCC4.8.2

下载gcc4.8.2源码包

1 curl -O ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz;

首先需要下载gcc安装所依赖的mpc,mpfr,gmp包,gcc自带了一个脚本帮我们下载并建立好链接等gcc编译时一起编译,你也可以自己去下载依赖包。

1 tar zxf gcc-4.8.2.tar.gz
2 cd gcc-4.8.2 
3 ./contrib/download_prerequisites

打开上面的download_prerequisites可以看到,它首先下载了3个包,所以当发现脚本卡在下载的地方可能就是无法访问的原因了,这是需要去找一个新的下载地址,方法很简单,google文件名就可以找到很多。

开始编译gcc

mkdir gcc-build-4.8.2
cd gcc-build-4.8.2
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make
make install

安装完成后如果发现gcc -v版本没有变化,就再执行以下启动脚本。

1 source /etc/profile
2 source ~/.bash_profile

安装完之后的问题

安装完之后虽然敲gcc g++ c++ 等版本都更新到了4.8.2但其实电脑里里面至少存在两个版本的gcc

whereis或者where可以看到有多个gcc文件,which命令可以看到命令gcc对应的是usr/local/bin/gcc,而原来的gcc执行文件在/usr/bin/gcc,执行/usr/bin/gcc -v可以看到gcc的版本还是4.4,这虽然问题不大,但有些shell脚本或者Makefile中直接写的是gcc的绝对路径,所以很有可能会使用旧的gcc版本去编译,从而导致失败。所以还是需要将原来的gcc覆盖掉。最开始想的办法是将、usr/bin/gcc软链接到usr/local/bin/gcc,对于g++,c++等也做相似的处理

这种方式看似解决了问题,但总觉得不靠谱,直到最近编译apache thrift发现还是不太对。所以考虑在安装gcc的时候是否可以指明安装路径。

执行

1 ./configure --help 

可以看到确实是有这样的选项的

所以只需要在configure的时候带上 --prefix=/usr 就可以将gcc编译安装到usr下了

Linux升级GCC 4.8.1清晰简明教程(Ubuntu 12.04 64位版为例)  http://www.linuxidc.com/Linux/2014-04/99583.htm

在CentOS 6.4中编译安装GCC 4.8.1 + GDB 7.6.1 + Eclipse 在CentOS 6.4中编译安装GCC 4.8.1 + GDB 7.6.1 + Eclipse

Ubuntu下Vim+GCC+GDB安装及使用 http://www.linuxidc.com/Linux/2013-01/78159.htm

Ubuntu下两个GCC版本切换 http://www.linuxidc.com/Linux/2012-10/72284.htm

CentOS6.5升级手动安装GCC4.8.2  http://www.linuxidc.com/Linux/2015-01/112595.htm

CentOS 6.6源码编译升级GCC至4.8.2相关推荐

  1. linux下源码编译升级ssh版本,ssh打补丁过程

    linux下源码编译升级ssh版本过程 记录打补丁之ssh源码编译升级过程 安装前软件准备 升级步骤 结尾及一些坑 记录打补丁之ssh源码编译升级过程 应安全报告要求需要修复操作系统中的ssh协议,原 ...

  2. CentOS 7.6源码编译安装gluster 6.1

    CentOS 7.6源码编译安装gluster 6.1 一.测试目的 测试使用源1. 码编译进行gluster集群的安装配置: 2. 测试使用源码编译生成RPM包进行gluster集群的安装配置: 二 ...

  3. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/Perl/Python组合成的动态Web应用程序和服务器,它是一组Web应用程序的基础 ...

  4. openssh升级_Redhat 6.5源码编译升级openssh到7.8版本

    1.检验升级OpenSSH依赖的相关组件 [root@web02 /]# rpm -qa | grep gcc [root@web02 /]# rpm -qa | grep zlib-devel [r ...

  5. CentOS 6.5源码编译安装MySQL 5.6

    对于服务器的环境,个人觉得还是源码编译安装的非常靠谱,假如有服务器要变更,直接rm掉安装目录即可.有些人喜欢yum安装,但是在卸载yum remove的时候,一不小心,就卸载了一个基础库,导致系统的s ...

  6. CentOS 7下源码编译安装新版本内核

    在工作中,很多时候由于需要使用新的技术方案,需要较新版本的内核来支持新的功能,而CentOS系统自带的内核版本普遍都比较旧,因此我们需要对系统的内核进行升级,安装新版的内核.在此,以CentOS 7系 ...

  7. aix升级openssh_AIX6.1上源码编译升级openssh6.6p1

    最近因为绿盟扫描到AIX5.3 AIX6.1系统有openssh高危漏洞,OPENSSH6.4之前的都报高危漏洞,IBM官网上也只有最新的openssh6.0安装文件供下载,没办法只有自己试验的用源码 ...

  8. CentOS 6.3 源码编译安装Apache

    一:Apache的简介 Apache HTTP Server(简称Apache)它是世界上使用排名第一的Web服务器开源软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用 ...

  9. centos下apache源码编译安装

    进入指定目录,下载 cd /usr/local/src wget http://mirrors.sohu.com/apache/httpd-2.2.31.tar.bz2 解压 tar jxf http ...

  10. pip安装wxpython报错traceback_使用源码编译wxpython-基于python2.7

    1.前言 本文主要讲述在linux环境下进行编译wxpython,在windows下面安装wxpython很简单,只要下载,然后直接执行exe文件,下一步下一步即可安装,在linux下面,则具有很多步 ...

最新文章

  1. for each .. in ,for ... in , for ... of的用法
  2. 把Array说透(续一)
  3. model.train_on_batch介绍【TensorFlow2入门手册】
  4. 半潜式深海平台动力定位控制技术研究
  5. Python学习笔记:面向对象高级编程(完)
  6. 快速弄懂内存字节对齐
  7. 三星i9018root方法
  8. C语言学习之1到10的奇数相乘1到10的偶数相乘
  9. NIFI使用过程中的invalid component问题解决
  10. matlab程序设计图像匹配,灰度,归一化算法,快速匹配。有代码好用。转载
  11. Think in Java第四版 读书笔记1
  12. 2018-2019 ACM-ICPC, Asia Nanjing Regional Contest题解
  13. 一个类中域(field)的首字母不要大写
  14. h3c交换机配置nat_H3C NAT配置实例
  15. Python语言程序设计基础_实验5 序列型数据_答案_通识教育必修课程_上海师范大学
  16. python函数装饰器一篇入魂
  17. 计算机网络 通信网络笔记(自顶向下的方法)from top to the botton of MIT
  18. 查看当前目录和上一级目录的命令
  19. Dubbo系列之微服务框架整合教程
  20. 《人物》:计算机世界第一人—艾兰·图灵

热门文章

  1. 用C#写XML类型的配置文件:
  2. php 5.5 preg replace,解决ecshop在php5.5以上环境preg_replace报错方法
  3. Date实战案例:倒计时日历
  4. 怎么用itunes来打开手机软件
  5. 初识 Powershell 5.0 class
  6. 衰退的爱立信,进击的华为
  7. Google Home其实是个错误
  8. spring --(16)AOP前置通知与后置通知
  9. 泡水十几秒仍能工作 小米手机2也能防水了
  10. Objective-C中的位运算符用法