• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

yum命令轻松升级到高版本gcc

武飞扬头像
so~what
帮助2

轻松升级gcc:

背景:
        直接通过yum install gcc安装的版本4.8.5太老了,很多新的库的用不起,没办法,只能升级。手动编译安装太过于麻烦,于是乎网上找到了这个方法。

方法:

第一步:安装centos-release-scl
sudo yum install centos-release-scl

第二步:安装devtoolset(安装debtoolset / gcc),注意,如果想安装7.版本的,就改成devtoolset-7-gcc,以此类推,默认安装的devtoolset是在 /opt/rh 目录下的。
sudo yum install devtoolset-7-gcc*

第三步:激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本。
scl enable devtoolset-7 bash

这条激活命令只对本次会话有效,重启会话后还是会变回原来的4.8.5版本

第四步:启动

每个版本的目录下面都有个 enable 文件,如果需要启用某个版本,只需要执行:

source ./enable

所以要想切换到某个版本,只需要执行:

source /opt/rh/devtoolset-7/enable

可以将对应版本的切换命令写个shell文件放在配了环境变量的目录下,需要时随时切换,或者开机自启。

第五步:直接替换旧的gcc
旧的gcc是运行的 /usr/bin/gcc,所以将该目录下的gcc/g 替换为刚安装的新版本gcc软连接,免得每次enable

  1.  
    mv /usr/bin/gcc /usr/bin/gcc-4.8.5
  2.  
    ln -s /opt/rh/devtoolset-7/root/bin/gcc /usr/bin/gcc
  3.  
     
  4.  
    mv /usr/bin/g /usr/bin/g -4.8.5
  5.  
    ln -s /opt/rh/devtoolset-7/root/bin/g /usr/bin/g

最后:查看gcc版本
which gcc
gcc --version

??我本地操作时,好像只做了前两步骤!。。。。。

手动安装gcc:

背景:

        操作环境 RHEL/Centos 6/7,在进行内核编译时编译器版本,需要升级gcc编译器,选择gcc-7.3.0。 http://ftp.gnu.org/gnu/gcc 里面提供所有的gcc版本供下载。

1、查看当前RHEL/Centos版本:

  1.  
    [root@linuxprobe ~]# cat /etc/redhat-release
  2.  
    Red Hat Enterprise Linux Server release 7.0 (Maipo)

2、查看现有的gcc版本:

  1.  
    [root@linuxprobe ~]# gcc --version
  2.  
    gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16)
  3.  
    Copyright (C) 2013 Free Software Foundation, Inc.
  4.  
    This is free software; see the source for copying conditions. There is NO
  5.  
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  6.  
     
  7.  
    [root@linuxprobe ~]# gcc -v
  8.  
    Using built-in specs.
  9.  
    COLLECT_GCC=gcc
  10.  
    COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper
  11.  
    Target: x86_64-redhat-linux
  12.  
    Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/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 --with-linker-hash-style=gnu --enable-languages=c,c ,objc,obj-c ,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
  13.  
    Thread model: posix
  14.  
    gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC)

3、安装RHEL/Centos7默认的开发工具,包含gcc,g ,make等等一系列工具:

[root@linuxprobe ~]# yum groupinstall "Development Tools"

4、查看默认动态库:

  1.  
    [root@linuxprobe ~]# strings /usr/lib64/libstdc .so.6 | grep GLIBC
  2.  
    GLIBCXX_3.4
  3.  
    GLIBCXX_3.4.1
  4.  
    GLIBCXX_3.4.2
  5.  
    GLIBCXX_3.4.3
  6.  
    GLIBCXX_3.4.4
  7.  
    GLIBCXX_3.4.5
  8.  
    GLIBCXX_3.4.6
  9.  
    GLIBCXX_3.4.7
  10.  
    GLIBCXX_3.4.8
  11.  
    GLIBCXX_3.4.9
  12.  
    GLIBCXX_3.4.10
  13.  
    GLIBCXX_3.4.11
  14.  
    GLIBCXX_3.4.12
  15.  
    GLIBCXX_3.4.13
  16.  
    GLIBCXX_3.4.14
  17.  
    GLIBCXX_3.4.15
  18.  
    GLIBCXX_3.4.16
  19.  
    GLIBCXX_3.4.17
  20.  
    GLIBCXX_3.4.18
  21.  
    GLIBCXX_3.4.19
  22.  
    GLIBC_2.3
  23.  
    GLIBC_2.2.5
  24.  
    GLIBC_2.14
  25.  
    GLIBC_2.4
  26.  
    GLIBC_2.3.2
  27.  
    GLIBCXX_DEBUG_MESSAGE_LENGTH
学新通

5、获取安装包并解压:

  1.  
    [root@linuxprobe ~]# cd /usr/local/src/
  2.  
    [root@linuxprobe src]# wget http://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.xz
  3.  
    [root@linuxprobe src]# tar xvf gcc-7.3.0.tar.xz

6、安装gcc的依赖软件。                                                                                                                         gcc的软件包内提供了自动下载需要软件的脚本./contrib/download_prerequisites ,这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力:

  1.  
    [root@linuxprobe src]# cd gcc-7.3.0/
  2.  
    [root@linuxprobe gcc-7.3.0]# ./contrib/download_prerequisites

7、生成Makefile文件:

[root@linuxprobe gcc-7.3.0]# ./configure -enable-checking=release -enable-languages=c,c   -disable-multilib

8、编译gcc:

  1.  
    //多核电脑可以添加 “-j4” :make对多核处理器的优化选项,此步骤非常耗时
  2.  
    [root@linuxprobe gcc-7.3.0]# make -j4

9、安装gcc:

[root@linuxprobe gcc-7.3.0]# make install

10、配置gcc:

  1.  
    [root@linuxprobe gcc-7.3.0]# cd ~
  2.  
    [root@linuxprobe ~]# find /usr/local/src/gcc-7.3.0/ -name "libstdc .so*"
  3.  
    /usr/local/src/gcc-7.3.0/stage1-x86_64-pc-linux-gnu/libstdc -v3/src/.libs/libstdc .so.6.0.24
  4.  
    /usr/local/src/gcc-7.3.0/stage1-x86_64-pc-linux-gnu/libstdc -v3/src/.libs/libstdc .so.6
  5.  
    /usr/local/src/gcc-7.3.0/stage1-x86_64-pc-linux-gnu/libstdc -v3/src/.libs/libstdc .so
  6.  
    /usr/local/src/gcc-7.3.0/prev-x86_64-pc-linux-gnu/libstdc -v3/src/.libs/libstdc .so.6.0.24
  7.  
    /usr/local/src/gcc-7.3.0/prev-x86_64-pc-linux-gnu/libstdc -v3/src/.libs/libstdc .so.6
  8.  
    /usr/local/src/gcc-7.3.0/prev-x86_64-pc-linux-gnu/libstdc -v3/src/.libs/libstdc .so
  9.  
    /usr/local/src/gcc-7.3.0/x86_64-pc-linux-gnu/libstdc -v3/src/.libs/libstdc .so.6.0.24
  10.  
    /usr/local/src/gcc-7.3.0/x86_64-pc-linux-gnu/libstdc -v3/src/.libs/libstdc .so.6
  11.  
    /usr/local/src/gcc-7.3.0/x86_64-pc-linux-gnu/libstdc -v3/src/.libs/libstdc .so
  12.  
    [root@linuxprobe ~]# cd /usr/lib64
  13.  
    [root@linuxprobe lib64]# cp /usr/local/src/gcc-7.3.0/stage1-x86_64-pc-linux-gnu/libstdc -v3/src/.libs/libstdc .so.6.0.24 .
  14.  
    [root@linuxprobe lib64]# mv libstdc .so.6 libstdc .so.6.old
  15.  
    [root@linuxprobe lib64]# ln -sv libstdc .so.6.0.22 libstdc .so.6
  16.  
    ‘libstdc .so.6’ -> ‘libstdc .so.6.0.22’
学新通

11、 重启,查看升级后的gcc版本:

[root@localhost ~]# gcc --version

12、 查看最新动态库:

[root@localhost ~]# strings /usr/lib64/libstdc  .so.6 | grep GLIBC 

devtoolset介绍:

背景
  不同平台的编译环境不一样,所以RedHat就推出了 scl (Software Collections) ,它可以根据devtoolset一起配合来快速统一开发环境,不用一个个的去找各个官网再去编译源码安装。
  使用scl 可以暂时的改变当前用户的编译工具,列如你的系统版本gcc 4.4.7 但是你可以使用scl工具它可以临时的把你的gcc版本提升到4.8。

安装devtoolset

  1.  
    sudo wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
  2.  
    sudo yum install --nogpgcheck devtoolset-2 devtoolset-2-binutils

安装软件

        安装全部软件

sudo yum install --nogpgcheck devtoolset-2

        安装指定软件

   如果你觉得上面安装的软件太多了,可以安装指定软件,比如gcc / g /gdb:

yum install devtoolset-2-gcc devtoolset-2-gcc-c   devtoolset-2-gdb  devtoolset-2-gcc-gfortran

开启devtoolset-2

        只对当前bash有效(方法一)

scl enable devtoolset-2 bash

        只对当前bash有效(方法二)

source /opt/rh/devtoolset-2/enable

查看安装了什么软件

scl --list 

参考:

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiehigg
系列文章
更多 icon
同类精品
更多 icon
继续加载