自从官方源不再维护后,安装centos7,遇到了升级GCC问题。
以前什么都不需要配置,只需要以下命令就能安装和使用对应的GCC版本。
yum install centos-release-scl
yum install scl-utils
# 查询软件集合
yum list all --enablerepo='centos-sclo-rh' | grep devtoolset
# 安装gcc 7 版本
yum install devtoolset-7-toolchain
# 列出所有软件
scl --list
# 切换软件环境
scl enable devtoolset-7 bash
yum install gcc-toolset-11
切换GCC版本:
scl enable gcc-toolset-11 bash
仅将.repo中源替换为阿里云或国内其它的源,不能解决问题。于是使用了vault源
以下以centos7.4为例,其它的7.3 7.6等,则需要将7.4.1708改为相应的。
查询版本命令:
cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[注意:centos7.1开始才有这个源,对于centos7.0,可以直接通过链接
Index of /centos/7/extras/x86_64/Packages
搜索下载
centos-release-scl-2-3.el7.centos.noarch
centos-release-scl-rh-2-3.el7.centos.noarch
devtoolset位于:
Index of /centos/7/sclo/x86_64/rh/Packages/d
以下是本次手工安装centos7.0的devtoolset-7最简化的包
https://vault.centos.org/centos/7/sclo/x86_64/rh/Packages/d/devtoolset-7-binutils-2.28-11.el7.x86_64.rpm https://vault.centos.org/centos/7/sclo/x86_64/rh/Packages/d/devtoolset-7-runtime-7.1-4.el7.x86_64.rpm
yum install policycoreutils-python
综上:针对centos7.0 安装了这些包
centos-release-scl-2-3.el7.centos.noarch.rpm
centos-release-scl-rh-2-3.el7.centos.noarch.rpm
devtoolset-7-binutils-2.28-11.el7.x86_64.rpm
devtoolset-7-gcc-7.3.1-5.16.el7.x86_64.rpm
devtoolset-7-gcc-c++-7.3.1-5.16.el7.x86_64.rpm
devtoolset-7-libstdc++-devel-7.3.1-5.16.el7.x86_64.rpm
devtoolset-7-runtime-7.1-4.el7.x86_64.rpm
另外加上 yum install scl-utils policycoreutils-python (这个配置aliyun源即可)
其它devtoolset-7-toolchain及其相应的依赖包视自己需要下载安装,主要用于调试器、内存检查等。
其他高于centos7.0的系统:
配置的repo内容
vim CentOS-SCLo-vault.repo
[centos-sclo-rh]
name=CentOS-7.4 - SCLo rh
baseurl=http://vault.centos.org/7.4.1708/sclo/x86_64/rh/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
cat CentOS-Vault.repo
# CentOS Vault contains rpms from older releases in the CentOS-7
# tree.
#c7.4.1708
[C7.4.1708-base]
name=CentOS-7.4.1708 - Base
baseurl=http://vault.centos.org/7.4.1708/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[C7.4.1708-updates]
name=CentOS-7.4.1708 - Updates
baseurl=http://vault.centos.org/7.4.1708/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[C7.4.1708-extras]
name=CentOS-7.4.1708 - Extras
baseurl=http://vault.centos.org/7.4.1708/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[C7.4.1708-centosplus]
name=CentOS-7.4.1708 - CentOSPlus
baseurl=http://vault.centos.org/7.4.1708/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[C7.4.1708-fasttrack]
name=CentOS-7.4.1708 - CentOSPlus
baseurl=http://vault.centos.org/7.4.1708/fasttrack/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
# C7.1.1503
[C7.1.1503-base]
name=CentOS-7.1.1503 - Base
baseurl=http://vault.centos.org/7.1.1503/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[C7.1.1503-updates]
name=CentOS-7.1.1503 - Updates
baseurl=http://vault.centos.org/7.1.1503/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[C7.1.1503-extras]
name=CentOS-7.1.1503 - Extras
baseurl=http://vault.centos.org/7.1.1503/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[C7.1.1503-centosplus]
name=CentOS-7.1.1503 - CentOSPlus
baseurl=http://vault.centos.org/7.1.1503/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[C7.1.1503-fasttrack]
name=CentOS-7.1.1503 - CentOSPlus
baseurl=http://vault.centos.org/7.1.1503/fasttrack/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
# C7.2.1511
[C7.2.1511-base]
name=CentOS-7.2.1511 - Base
baseurl=http://vault.centos.org/7.2.1511/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[C7.2.1511-updates]
name=CentOS-7.2.1511 - Updates
baseurl=http://vault.centos.org/7.2.1511/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[C7.2.1511-extras]
name=CentOS-7.2.1511 - Extras
baseurl=http://vault.centos.org/7.2.1511/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[C7.2.1511-centosplus]
name=CentOS-7.2.1511 - CentOSPlus
baseurl=http://vault.centos.org/7.2.1511/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[C7.2.1511-fasttrack]
name=CentOS-7.2.1511 - CentOSPlus
baseurl=http://vault.centos.org/7.2.1511/fasttrack/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
# C7.3.1611
[C7.3.1611-base]
name=CentOS-7.3.1611 - Base
baseurl=http://vault.centos.org/7.3.1611/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[C7.3.1611-updates]
name=CentOS-7.3.1611 - Updates
baseurl=http://vault.centos.org/7.3.1611/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[C7.3.1611-extras]
name=CentOS-7.3.1611 - Extras
baseurl=http://vault.centos.org/7.3.1611/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[C7.3.1611-centosplus]
name=CentOS-7.3.1611 - CentOSPlus
baseurl=http://vault.centos.org/7.3.1611/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[C7.3.1611-fasttrack]
name=CentOS-7.3.1611 - CentOSPlus
baseurl=http://vault.centos.org/7.3.1611/fasttrack/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
以下是oracle linux 7.9的可用示例:
cat redhat.repo
#
# Certificate-Based Repositories
# Managed by (rhsm) subscription-manager
#
# *** This file is auto-generated. Changes made here will be over-written. ***
# *** Use "subscription-manager repo-override --help" if you wish to make changes. ***
#
# If this file is empty and this system is subscribed consider
# a "yum repolist" to refresh available repos
#
[ol7_latest]
name=Oracle Linux 7 Latest (x86_64)
baseurl=https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/
gpgcheck=0
enabled=1
gpgkey=https://yum.oracle.com/RPM-GPG-KEY-oracle
[ol7_optional_latest]
name=Oracle Linux 7 Optional Latest (x86_64)
baseurl=https://yum.oracle.com/repo/OracleLinux/OL7/optional/latest/x86_64/
gpgcheck=0
enabled=1
gpgkey=https://yum.oracle.com/RPM-GPG-KEY-oracle
注,如果在安装时提示如下这样的:
yum install libdtrace-ctf.x86_64 libdtrace-ctf-devel.x86_64
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Resolving Dependencies
--> Running transaction check
---> Package libdtrace-ctf.x86_64 0:0.7.0-1.el7 will be installed
---> Package libdtrace-ctf-devel.x86_64 0:0.7.0-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================
Package Arch Version Repository Size
===============================================================================================
Installing:
libdtrace-ctf x86_64 0.7.0-1.el7 ol7_latest 33 k
libdtrace-ctf-devel x86_64 0.7.0-1.el7 ol7_latest 19 k
Transaction Summary
===============================================================================================
Install 2 Packages
Total size: 53 k
Installed size: 114 k
Is this ok [y/d/N]: y
Downloading packages:
warning: /var/cache/yum/x86_64/7Server/ol7_latest/packages/libdtrace-ctf-0.7.0-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Retrieving key from https://yum.oracle.com/RPM-GPG-KEY-oracle
GPG key retrieval failed: [Errno 14] HTTPS Error 404 - Not Found
则需要将.repo文件中的gpgcheck=1改为gpgcheck=0