升级前提

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

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

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

编译安装GCC4.8.2

下载gcc4.8.2源码包

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

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

 tar zxf gcc-4.8..tar.gz
cd gcc-4.8. 
./contrib/download_prerequisites

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

开始编译gcc

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

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

 source /etc/profile
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的时候是否可以指明安装路径。

执行

 ./configure --help 

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

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

CentOS6.6源码编译升级GCC至4.8.2的更多相关文章

  1. golang基于当前1.9版本进行源码编译升级到1.10

    一.起因 golang出了最新的1.10版本,而刚出的vgo也是需要基于该最新版本的.为了测试vgo,因此需要将我的v1.9升级到v1.10版本. 安装过golang的同学都知道,golang常用的有 ...

  2. Mysql5.6 for Centos6.5源码编译安装

    ## 说明 不同服务器需要改变 server_id ,同一台机器上需要改变 port 1. 关闭防火墙[root@mysql ~]# service iptables status --查看防火墙状态 ...

  3. centos6.5 源码编译 mysql5.6.21

    1.yum安装各个依赖包 [root@WebServer ~]# yum -y install gcc gcc-devel gcc-c++ gcc-c++-devel autoconf* automa ...

  4. Centos6.5源码编译安装nginx

    1.安装pcre下载地址:http://jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz #tar -axvf pcre ...

  5. Centos6.5 源码编译安装 Mysql5.7.11及配置

    安装环境 Linux(CentOS6.5 版).boost_1_59_0.tar.gz.mysql-5.7.11.tar.gzMySQL 5.7主要特性:    更好的性能:对于多核CPU.固态硬盘. ...

  6. centos6.5环境源码编译安装mysql5.6.34

    centos6.5环境源码编译安装mysql5.6.34 源码下载地址http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择Generic ...

  7. mysql5.7.10 源码编译安装记录 (centos6.4)【转】

    一.准备工作 1.1 卸载系统自带mysql 查看系统是否自带MySQL, 如果有就卸载了, 卸载方式有两种yum, rpm, 这里通过yum卸载 rpm -qa | grep mysql //查看系 ...

  8. CentOS6.5下搭建LAMP环境(源码编译方式)

    CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL) 学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP ,WAMP,MAMP等.这里我介 ...

  9. centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版

    zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...

随机推荐

  1. 记RedisDesktopManager的一次崩溃

    redis3.2的配置文件中有bind监听地址 bind 192.168.42.131默认bind的填写的127.0.0.1这样配置是只允许本地访问,如果想远程访问就改为本机网卡绑定的ip地址.我这边 ...

  2. 【转】ST05

    一. SQL Trace 通过SQL跟踪,可以具体查询数据来源于哪些数据库表, 例如:可以查询某个交易(或几个交易)所涉及的数据库表. 为了减少在最终查询结果的工作量,要在屏幕显示你所要显示的数据的前 ...

  3. iframe框架自适应高度 uncanght SecurityError: Blocked a frame with origin "null" from accessing a frame ....

    来源于crm项目的contact/edit.html 一.背景是这样的 最近在做crm系统的前端页面,有一个页面呢,点击“查看全部信息”时会弹出,这个弹窗里面又有分页导航,分页不是使用ajax 异步刷 ...

  4. crm操作权限

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Xrm.Sdk.Query;     using System.Colle ...

  5. 总结swift语言常见的20个问题和回答

    1.假设我是个刚入门的iOS开发人员,选swift学习呢,还是选objective-c学习,还是两个都学? 这个能够依据两种情况来决定:1.我想进入公司担任iOS开发的职位    2.我仅仅想做个独立 ...

  6. SVN高速新手教程

    因为做Zip和Rar解析的时候,找到了mucommander工具,可将其jar包导入项目里执行发现报:类型转换错误,org.apache.commons.logging.impl.Log4JLogge ...

  7. C#操控条形码扫描枪

    // 条码扫描器 // 窗体部分相关代码: using System; using System.Collections.Generic; using System.ComponentModel; u ...

  8. http://venkatbaggu.com/file-upload-in-asp-net-mvc-using-dropzone-js-and-html5/

    http://venkatbaggu.com/file-upload-in-asp-net-mvc-using-dropzone-js-and-html5/ http://www.cnblogs.co ...

  9. .NET程序编译原理

    导语: CPU只认识二进制代码,那么C#源代码是怎样变成CPU可识别的二进制代码的呢? 步骤如下: 1.C#源码 2.运用VS自带的命令提示窗口,使用csc命令将C#源码转成程序集(EXE文件或DLL ...

  10. hadoop_集群安装_1

    这篇文章中主要介绍的是,如何基于VM安装Linux,以及如何在安装好Linux之后,基于操作系统安装VMTools. 在安装之前,应该先规划好 每个node*的IP地址,以及 hostname: no ...