如何在 CentOS 7.2 上使用 yum 安装 gcc 5.3?
Posted
技术标签:
【中文标题】如何在 CentOS 7.2 上使用 yum 安装 gcc 5.3?【英文标题】:How to Install gcc 5.3 with yum on CentOS 7.2? 【发布时间】:2016-07-19 13:50:13 【问题描述】:我使用的是 CentOS 7.2
当我使用yum groupinstall "Development Tools"
时,gcc版本是4.8.5,像这样:
我想安装 gcc 5.3
如何使用yum
解决这个问题?
【问题讨论】:
跟随本教程vultr.com/docs/how-to-install-gcc-on-centos-6 @MohammadShahadatHossain 是否有yum
资源?
我不确定,但在这种情况下,您可以使用此处的 RPM 资源。 rpmfind.net/linux/rpm2html/search.php?query=gcc
devtoolset 现在提供 5.3.1 -- 请参阅下面的答案,了解使用 yum 启用和安装它的命令。
【参考方案1】:
更新: 通常人们想要最新版本的 gcc,并且 devtoolset 保持最新,所以也许你想要 devtoolset-N 其中 N=4,5,6,7...,检查 yum 以获取最新版本在您的系统上)。为 N=7 更新了下面的 cmds。
以 devtoolset-7 的 gcc-7.2.1 包为例。首先你需要启用Software Collections,然后它在devtoolset-7中可用:
sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
scl enable devtoolset-7 bash
which gcc
gcc --version
【讨论】:
devtoolset 中的 gcc 版本同时已经升级到 5.3.1 不仅如此,还可以安装devtoolset-6来获取6.2.1 更改符号链接并不是最好的做法,因为它可能由另一个可以升级的软件包拥有/管理。最好在您的登录中激活它,或者在系统范围的登录脚本中使用scl enable devtoolset-6 bash
或. /opt/rh/devtoolset-6/bin/enable
updated link to software tools docs
运行 yum install devtoolset-4-binutils
可能也有助于获得完整的 GCC 工具链。
我使用source scl_source enable devtoolset-4
将我当前的gcc 切换为devtoolset-4
安装的gcc【参考方案2】:
更新:安装最新版本的 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
安装 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. This Stack Overflow answer 将帮助您了解如何验证下载的源文件。
2. 使用选项--prefix
将gcc 安装到默认目录以外的另一个目录。***安装目录默认为 /usr/local。 Read about gcc installation options
【讨论】:
为什么从 ftp.mirrorservice.org 而不是 ftp.gnu.org 下载?您还应该下载并验证相应的.sig
文件(pgp 签名)。
不带 --prefix 的配置将安装在 /usr/local/ 中,这可能会或可能不会先于您在 PATH 上的原始 gcc 安装
make -j $(nproc)
这花了我 4 个多小时来编译和超过 6GB 的硬盘空间。
正如 tim18 建议的那样,在没有 --prefix
的情况下运行 make && make install
是否安全?如果这样做,所有东西都安装到/usr/
甚至/usr/local
,检查config.log
:Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info ...
【参考方案3】:
您可以使用 centos-sclo-rh-testing repo 安装 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;
【讨论】:
虽然这段代码可以回答问题,但最好解释一下如何解决问题,并提供代码作为示例或参考。仅代码的答案可能会令人困惑且缺乏上下文。 遗憾的是,此解决方案不会更新/usr/lib64/libstdc++.so
文件以使用较新的符号。【参考方案4】:
使用 yum 和更新您的开发工具集的最佳方法是利用 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 等
【讨论】:
【参考方案5】:在 CentOS / RHEL 7 服务器上安装 GCC 和开发工具的命令
以 root 用户身份输入以下 yum 命令:
yum group install "Development Tools"
或
sudo yum group install "Development Tools
如果上述命令失败,请尝试:
yum groupinstall "Development Tools
【讨论】:
以上是关于如何在 CentOS 7.2 上使用 yum 安装 gcc 5.3?的主要内容,如果未能解决你的问题,请参考以下文章