赞
踩
目录
升级到gcc 6.3:devtoolset-6已经结束支持,请安装devtoolset-7
源码编译安装(centos 6.5 手动升级gcc7.4.0)
网上的文章大多是把操作的步骤一步一步的写出来,但是系统、环境、版本往往每个人都不相同,所以按照别人的教程经常失败。
此文主要教方法,掌握了方法,每个人根据自己的系统、版本下载gcc,下载依赖包,增加成功率。
查看 centOS 版本的方式:
cat /etc/redhat-release
以centOS6.5 安装gcc为例:
到网站http://archive.kernel.org/centos-vault根据自己的系统、版本、32位或者64位选择到Packages底下,下载gcc rpm安装包,
如我的是6.5的32位(i386):
http://archive.kernel.org/centos-vault/6.5/os/i386/Packages/ 下载gcc-4.4.7-4.el6.i686.rpm
rpm -Uvh gcc-4.4.7-4.el6.i686.rpm
提示安装失败,依赖
error: Failed dependencies:
cpp = 4.4.7-4.el6 is needed by gcc-4.4.7-4.el6.i686
在http://archive.kernel.org/centos-vault/6.5/os/i386/Packages/ 目录下搜索cpp 找到cpp-4.4.7-4.el6.i686.rpm
下载,rpm -Uvh cpp-4.4.7-4.el6.i686.rpm 然后 安装gcc-4.4.7-4.el6.i686.rpm
遇到这样的依赖报错:
error: Failed dependencies:
libmpfr.so.1 is needed by cpp-4.4.7-4.el6.i686
因为linux的库前面会有个前缀lib,所以去搜索的时候要去掉lib 直接搜mpfr 就能搜到对应的rpm
也有例外的,如
libppl.so.7 is needed by cloog-ppl-0.15.7-1.2.el6.i686
libppl_c.so.2 is needed by cloog-ppl-0.15.7-1.2.el6.i686
虽然报了两个依赖,实际只需下载ppl的包(ppl-0.10.2-11.el6.i686.rpm)即可
一个一个的安装,遇到报依赖就到packages下去载相应的依赖库安装,直到最后把gcc rpm安装包安装上为止
该离线方法的要点是,通过命令:
cat /etc/issue 显示的是发行版本信息
或
lsb_release -a 显示的是发行版本信息
查出linux的发行版本6.5,然后到http://archive.kernel.org/centos-vault网站,根据自己的系统选择目录,找到/os/i386/Packages/ 下的gcc rpm 下载下来,安装。 (32位是选择i386 64选择目录x86_64)
为CentOS 6、7升级gcc至4.8、4.9、5.2、6.3、7.3等高版本我们今天就不采用编译安装的方法了,gcc安装起来非常费时,我们采用CentOS的一个第三方库SCL(软件选集),SCL可以在不覆盖原系统软件包的情况下安装新的软件包与老软件包共存并且可以使用scl命令切换,不过也有个缺点就是只支持64位的。
一般如果需要升级gcc至4.8或更高版本,建议直接采用安装SCL源之后安装devtoolset-x,由于linux更新比较频繁,旧的devtoolset 版本都经常已经结束支持,导致安装失败,所以尽可能安装新版本的。
yum -y install centos-release-scl
yum -y install devtoolset-6-gcc devtoolset-6-gcc-c++ devtoolset-6-binutils
scl enable devtoolset-6 bash
需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要长期使用gcc 6.3的话:
echo "source /opt/rh/devtoolset-6/enable" >>/etc/profile
这样退出shell重新打开就是新版的gcc了
以下其他版本同理,修改devtoolset版本号即可。
VPS侦探 https://www.vpser.net
yum -y install centos-release-scl
yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils
scl enable devtoolset-7 bash
需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要长期使用gcc 7.3的话:
echo "source /opt/rh/devtoolset-7/enable" >>/etc/profile
yum -y install centos-release-scl
yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils
scl enable devtoolset-7 bash
需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要长期使用gcc 8.3的话:
echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要长期使用gcc 9.3的话:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
再说一下已经停止支持的devtoolset4(gcc 5.2)及之前版本的安装方法
wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtoolset-2.repo
yum -y install devtoolset-2-gcc devtoolset-2-gcc-c++ devtoolset-2-binutils
scl enable devtoolset-2 bash
wget https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo -O /etc/yum.repos.d/devtoolset-3.repo
yum -y install devtoolset-3-gcc devtoolset-3-gcc-c++ devtoolset-3-binutils
scl enable devtoolset-3 bash
wget https://copr.fedoraproject.org/coprs/hhorak/devtoolset-4-rebuild-bootstrap/repo/epel-6/hhorak-devtoolset-4-rebuild-bootstrap-epel-6.repo -O /etc/yum.repos.d/devtoolset-4.repo
yum install devtoolset-4-gcc devtoolset-4-gcc-c++ devtoolset-4-binutils -y
scl enable devtoolset-4 bash
升级完成后一定要运行:gcc --version 看一下版本号变成升级后的gcc版本才算升级成功。
好了,至此各个主要gcc版本的安装教程,如有问题可以本文回复或者VPS论坛发帖。
- # 下载
- [root@centos6 develop]# wget http://ftp.gnu.org/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.gz
-
- # 解压
- [root@centos6 develop]# tar zxf gcc-7.4.0.tar.gz
-
- #到解压目录中
- [root@centos6 develop]# cd gcc-7.4.0
- [root@centos6 gcc-7.4.0]#
-
- #安装依赖插件(这个耗时较久)
- [root@centos6 gcc-7.4.0]# ./contrib/download_prerequisites
- #安装结果
- 2019-01-10 00:11:41 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840] -> "./gmp-6.1.0.tar.bz2" [1]
- 2019-01-10 00:12:46 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 [1279284] -> "./mpfr-3.1.4.tar.bz2" [1]
- 2019-01-10 00:13:11 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925] -> "./mpc-1.0.3.tar.gz" [1]
- 2019-01-10 00:14:02 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2 [1626446] -> "./isl-0.16.1.tar.bz2" [1]
- gmp-6.1.0.tar.bz2: 确定
- mpfr-3.1.4.tar.bz2: 确定
- mpc-1.0.3.tar.gz: 确定
- isl-0.16.1.tar.bz2: 确定
- All prerequisites downloaded successfully.
-
- # 创建新目录
- [root@centos6 gcc-7.4.0]# mkdir /usr/local/gcc-7.4.0
- 移到新建目录
- [root@centos6 gcc-7.4.0]# cd /usr/local/gcc-7.4.0/
-
- #编译安装
- [root@centos6 gcc-7.4.0]# /develop/gcc-7.4.0/configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
- #这个会有点久 (一小时多点)
- [root@centos6 gcc-7.4.0]# make && make install
-
- # 这时候我去安装protobuf出现下面异常,经网上提示发现是这时候的动态库没有更新
- [root@centos6 python]# python setup.py build
- running build
- running build_py
- Generating google/protobuf/descriptor_pb2.py...
- /develop/protobuf-3.6.1/src/.libs/lt-protoc: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
-
- #检查当前动态库,果然是没有最新的库
- [root@centos6 python]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
- GLIBCXX_3.4
- GLIBCXX_3.4.1
- GLIBCXX_3.4.2
- GLIBCXX_3.4.3
- GLIBCXX_3.4.4
- GLIBCXX_3.4.5
- GLIBCXX_3.4.6
- GLIBCXX_3.4.7
- GLIBCXX_3.4.8
- GLIBCXX_3.4.9
- GLIBCXX_3.4.10
- GLIBCXX_3.4.11
- GLIBCXX_3.4.12
- GLIBCXX_3.4.13
- GLIBC_2.2.5
- GLIBC_2.3
- GLIBC_2.4
- GLIBC_2.3.2
- GLIBCXX_FORCE_NEW
- GLIBCXX_DEBUG_MESSAGE_LENGTH
-
-
- #查看编译安装后最新库,发现最新的是6.0.24
- [root@centos6 ~]# find / -name "libstdc++.so*"
- /usr/local/gcc-7.4.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
-
- #将上面的最新动态库libstdc++.so.6.0.24复制到/usr/lib64目录下
- [root@centos6 ~]# cd /usr/lib64/
- [root@centos6 lib64]# cp /usr/local/gcc-7.4.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24 ./
-
- #删除原来的软链接,并将默认库的软链接指向现在最新的动态库
- [root@centos6 lib64]# rm -rf libstdc++.so.6
- [root@centos6 lib64]# ln -s libstdc++.so.6.0.24 libstdc++.so.6
- #重启 完成
- [root@centos6 lib64]# reboot
-
- 完成后查看版本
- [root@centos6 ~]# gcc -v
- 使用内建 specs。
- COLLECT_GCC=gcc
- COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.4.0/lto-wrapper
- 目标:x86_64-pc-linux-gnu
- 配置为:/develop/gcc-7.4.0/configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
- 线程模型:posix
- gcc 版本 7.4.0 (GCC)
原文:centos 6.5 手动升级gcc7.4.0 - 简书
近日在一台CentOS6.6的机器上成功安装了QT5.7,但在编写测试程序时,发现无法识别“gun++11”语法,检查当前CentOS6.6的gcc版本为:4.4.7
下面是CentOS6.6将gcc升级至4.8.2的过程:
- #安装仓库
-
- wget http://people.centos.org/tru/devtools-2/devtools-2.repo
-
- mv devtools-2.repo /etc/yum.repos.d
-
-
-
- #升级gcc等
-
- yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
新版本的gcc安装在/opt/rh/devtoolset-2/root/ 下。
-
- #保存以前的gcc
-
- mv /usr/bin/gcc /usr/bin/gcc-4.4.7
-
- mv /usr/bin/g++ /usr/bin/g++-4.4.7
-
- mv /usr/bin/c++ /usr/bin/c++-4.4.7
-
-
-
- #为新版本的gcc创建软连接
-
- ln -s /opt/rh/devtoolset-2/root/usr/bin/gcc /usr/bin/gcc
-
- ln -s /opt/rh/devtoolset-2/root/usr/bin/c++ /usr/bin/c++
-
- ln -s /opt/rh/devtoolset-2/root/usr/bin/g++ /usr/bin/g++
- [root@bin]# gcc -v
-
- Using built-in specs.
-
- COLLECT_GCC=gcc
-
- COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper
-
- Target: x86_64-redhat-linux
-
- Configured with: ../configure --prefix=/opt/rh/devtoolset-2/root/usr --mandir=/opt/rh/devtoolset-2/root/usr/share/man --infodir=/opt/rh/devtoolset-2/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-isl=/dev/shm/home/centos/rpm/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/isl-install --with-cloog=/dev/shm/home/centos/rpm/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/cloog-install --with-mpc=/dev/shm/home/centos/rpm/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
-
- Thread model: posix
-
- gcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC)
原文:https://blog.csdn.net/dijkstar/article/details/82218170
http://people.centos.org/tru/devtools-2/7/x86_64/RPMS/repodata/repomd.xml: [Errno 14]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。