CentOS升级GCC

一般的Linux都是企业应用相对的发行版的软件包相对较旧,而现在C++11逐渐普及,支持C++11的编译器在Linux上的GCC稍微完整点的都至少是4.8版本,反观CentOS 6的GCC版本为4.4,即使是最新的CentOS 7也才仅为4.7。因此很多时候需要升级系统自带的编译器(注意,千万不要从高版本的Linux上GCC编译的程序拿到低版本的服务器上来,因为GLIBC不支持,也不能直接替换)。

源码编译升级

一般来讲,Linux下大多数软件都是编译安装的,有了仓库之后安装就变的简单了,但是我们需要升级的就是默认仓库下的软件,比如我们升级到4.9版本去。一般的办法就是通过下载源码,解决依赖,编译等。这个方法我们测试使用过,但是好像在字符编码转换方面好像是存在问题的。具体编译方法可自行百度。

在线仓库安装

其实软件仓库里面是有更高版本的GCC的,只是一般没有配置而已,而且是准备了好多个版本,叫 devtoolset 因此会有如 devtoolset-3 对应4.9.2版本,devtoolset-6 对应6.3.1版本等等,现在最新的最高版本是7了,对应的是GCC的7版本,想要在线安装,简单的处理办法是在repo文件中添加,比如我的阿里云服务器使用的是CentOS的6版本(7版本类似),编辑 /etc/yum.repo.d/CentOS-Base.repo 在最后添加

[centos-sclo-rh]
name=CentOS-6 - SCLo rh
baseurl=http://mirrors.aliyun.com/centos/6/sclo/$basearch/rh/
gpgcheck=0
enabled=1

添加完成之后,就可以安装软件了,一般安装GCC和G++就可以了,查看网页发现软件也不多,因此我安装了6版本的所有软件,因为这样GDB等都可以使用

yum update
yum install devtoolset-6

升级完成之后,软件安装到了 /opt/rh 目录,要使用高版本的时候,更新环境变量即可

source /opt/rh/devtoolset-6/enable

本来想安装的是4.9.2版本的,无奈安装 devtoolset-3 在服务端是有相应的软件的,但是YUM却不能扫到,不知道为何。

另:网络上有通过YUM方式安装仓库的方式来在线安装,原理是一样的,结果应该也是一样的,如下

yum install centos-release-scl-rh centos-release-scl

相应的会在 /etc/yum.repo.d/ 目录下生成两个repo文件。

最近的文章

Tensorflow加速

最近在研究学习Tensorflow的图像的物体识别功能,Python迁移学习用起来爽的不要不要的,但是机器才是2G的750Ti显卡,不说训练了,就是检测识别i7 6700也是十几二十秒,效果很差。当然一般深度学习是用GPU,1060显卡起且显存至少8G起,但是我木有显卡啊,自从挖矿导致的显卡涨价之后 …

技术 继续阅读
更早的文章

用ffmpeg从MP4提取H264裸流

MP4的格式封装比较复杂,想取出来H264裸流比较麻烦,因此借助ffmpeg工具比较方便。通常一般都是使用ffmpeg进行编解码较多,但是当我们视频是H264编码时候,直接提取比较合适。 提取H264H264编码的MP4文件,使用ffmpeg提取相对比较方便,直接使用ffmpeg标准的媒体文件读取流 …

技术 继续阅读