如何在CentOS 7.2上使用yum安装gcc 5.3?

116

我正在使用CentOS 7.2

当我使用yum groupinstall "Development Tools"命令时,gcc版本是4.8.5,如下所示:

图片描述

我想安装gcc 5.3

如何通过yum实现?


请按照此教程安装GCC在CentOS 6上:https://www.vultr.com/docs/how-to-install-gcc-on-centos-6 - Mohammad Shahadat Hossain
@MohammadShahadatHossain 有没有任何yum资源? - sunshine
我不确定,但在这种情况下,您可以使用此处的RPM资源。https://www.rpmfind.net/linux/rpm2html/search.php?query=gcc - Mohammad Shahadat Hossain
devtoolset现在提供5.3.1版本--请查看我的回答以获取使用yum启用和安装它的命令。 - tesch1
5个回答

232
更新:
通常人们希望使用最新版本的gcc,而devtoolset会持续更新,因此您可能希望使用devtoolset-N,其中N={4,5,6,7...},请在您的系统上检查yum以获取最新的可用版本。下面的命令已更新为N=7。

这里有一个示例,gcc-7.2.1的软件包适用于devtoolset-7。首先需要启用软件集合,然后就可以在devtoolset-7中找到它:

sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
scl enable devtoolset-7 bash
which gcc
gcc --version

2
Devtoolset中的GCC版本已经升级到5.3.1。 - tesch1
4
不仅如此,您还可以安装devtoolset-6以获得6.2.1版本。 - Rahly
5
更改符号链接并不是最好的选择,因为它可能被另一个软件包所拥有/管理,该软件包可能会升级。最好的方法是在您的登录中激活它,或者在系统范围的登录脚本中使用scl enable devtoolset-6 bash. /opt/rh/devtoolset-6/bin/enable 软件工具文档的更新链接 - tesch1
5
我使用命令 source scl_source enable devtoolset-4 来切换当前的gcc版本,以使用由“devtoolset-4”安装的gcc版本。 - W.F.
3
devtoolset-5在CentOS7上不存在,因此答案不适用于OP的问题。 - Fafaman
显示剩余15条评论

78

更新: 安装最新版本gcc 9: (gcc 9.3.0) - 发布于2020年3月12日:

同样的方法可以应用到 gcc 10 (gcc 10.1.0) - 发布于2020年5月7日

下载文件: gcc-9.3.0.tar.gz 或者 gcc-10.1.0.tar.gz

编译和安装:

//required libraries: (some may already have been installed)
dnf install libmpc-devel mpfr-devel gmp-devel

//if dnf install libmpc-devel is not working try:
dnf --enablerepo=PowerTools install libmpc-devel

//install zlib
dnf install zlib-devel*

./configure --with-system-zlib --disable-multilib --enable-languages=c,c++

make -j 8 <== this may take around an hour or more to finish
              (depending on your cpu speed)

make install

CentOS 7.8.2003上测试过gcc 9.3和gcc 10.1。

CentOS 8.1.1911上测试过gcc 10.1(编译可能需要更长时间)。

结果: gcc/g++ 9.3.0/10.1.0

enter image description here enter image description here

安装gcc 7.4 (gcc 7.4.0) - 发布于2018年12月6日

下载文件:https://ftp.gnu.org/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.gz

编译并安装:

//required libraries:
yum install libmpc-devel mpfr-devel gmp-devel

./configure --with-system-zlib --disable-multilib --enable-languages=c,c++

make -j 8 <== this may take around 50 minutes or less to finish with 8 threads
              (depending on your cpu speed)


make install

结果:

在此输入图片描述

注:

1. 参考这个Stack Overflow回答,了解如何验证下载的源文件。

2. 使用选项--prefix可将gcc安装到除默认目录以外的其他目录。顶层安装目录默认为/usr/local。阅读有关gcc安装选项的信息


为什么要从ftp.mirrorservice.org下载而不是ftp.gnu.org?您还应该下载并验证相应的.sig文件(pgp签名)。 - Keith Thompson
按照所示进行配置而不使用--prefix将安装在/usr/local/中,这可能会在PATH上超过或不足您原始的gcc安装。 - tim18
3
使用make -j $(nproc)命令。其中,-j选项后跟着$(nproc),表示使用当前系统中可用的所有CPU内核数并行编译。 - user7339033
2
这个编译花了我超过4个小时的时间,占用了超过6GB的硬盘空间。 - iDevFS
正如tim18建议的那样,运行make && make install而没有使用--prefix是安全的吗?如果这样做,一切都将被安装到/usr/甚至不是/usr/local,请检查config.logConfigured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info ... - Celdor
显示剩余5条评论

14
你可以使用 centos-sclo-rh-testing 软件仓库来安装 GCC v7,无需永远编译它,还可以默认启用 V7,并在需要时切换到不同的版本。

您可以使用centos-sclo-rh-testing软件仓库来安装GCC v7,无需永久编译它,同时还可以默认启用V7,并在需要时切换到其他版本。

sudo yum install -y yum-utils centos-release-scl;
sudo yum -y --enablerepo=centos-sclo-rh-testing install devtoolset-7-gcc;
echo "source /opt/rh/devtoolset-7/enable" | sudo tee -a /etc/profile;
source /opt/rh/devtoolset-7/enable;
gcc --version;

虽然这段代码可能回答了问题,但最好解释一下如何解决问题,并提供代码作为示例或参考。仅有代码的答案可能会令人困惑并缺乏上下文。 - Robert Columbia
遗憾的是,该解决方案无法更新 /usr/lib64/libstdc++.so 文件以使用较新的符号。 - scaly

7

使用yum并更新devtoolset的最佳方法是利用CentOS SCLo RH测试存储库。

yum install centos-release-scl-rh
yum --enablerepo=centos-sclo-rh-testing install devtoolset-7-gcc devtoolset-7-gcc-c++

许多其他的软件包也可用,要查看它们所有的内容。
yum --enablerepo=centos-sclo-rh-testing list devtoolset-7*

你可以使用此方法安装任何开发工具版本,只需将7替换为所需的版本。例如:devtoolset-6-gcc、devtoolset-5-gcc等。

-15

在CentOS / RHEL 7服务器上安装GCC和开发工具的命令

以root用户身份键入以下yum命令: yum group install "Development Tools"

或者 sudo yum group install "Development Tools

如果以上命令失败,请尝试: yum groupinstall "Development Tools


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接