centos7中安装了centos-release-scl后,之前的yum源变为不可用 解决方案
1. 前言
今天碰到了一个奇奇怪怪的事情,我自己在自己的服务器(centos7)上安装了centos-release-scl后,之前运行正常的yum命令竟然变得不可用。
2. 场景重现
执行下面这条命令后,再次使用yum报错。
- yum install centos-release-scl -y
复制代码 报错信息如下:
- [root@localhost ~]# sudo yum install devtoolset-11
- Could not retrieve mirrorlist http://mirrorlist.centos.org?arch=x86_64&release=7&repo=sclo-rh error was
- 14: curl#7 - "Failed to connect to 2a05:d012:8b5:6503:9efb:5cad:348f:e826: 网络不可达"
- One of the configured repositories failed (未知),
- and yum doesn't have enough cached data to continue. At this point the only
- safe thing yum can do is fail. There are a few ways to work "fix" this:
- 1. Contact the upstream for the repository and get them to fix the problem.
- 2. Reconfigure the baseurl/etc. for the repository, to point to a working
- upstream. This is most often useful if you are using a newer
- distribution release than is supported by the repository (and the
- packages for the previous distribution release still work).
- 3. Disable the repository, so yum won't use it by default. Yum will then
- just ignore the repository until you permanently enable it again or use
- --enablerepo for temporary usage:
- yum-config-manager --disable <repoid>
- 4. Configure the failing repository to be skipped, if it is unavailable.
- Note that yum will try to contact the repo. when it runs most commands,
- so will have to try and fail each time (and thus. yum will be be much
- slower). If it is a very temporary problem though, this is often a nice
- compromise:
- yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
- Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64
复制代码 3. 什么是SCL?
SCL项目主页:https://www.softwarecollections.org/
SCL(Software Collections)可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包。SCL为社区的以下需求而设计:创建和使用软件聚集生产系统、概念验证系统、开发测试平台。SCL目前已经支持Fedora和RHEL(衍生版本如CentOS也包含在内)。
SCL的创建就是为了给RHEL/CentOS用户提供一种以方便、安全地安装和使用应用程序和运行时环境的多个(而且大概是更新的)版本的方式,同时制止把系统搞乱。与之相对的是第三方源,它们大概会在已安装的包之间引起辩论。
现在有以下软件选集可供CentOS 6.5或以上版本应用。
- Ruby 1.9.3 (ruby193)
- Python 2.7 (python27)
- Python 3.3 (python33)
- PHP 5.4 (php54)
- Perl 5.16.3 (perl516)
- Node.js 0.10 (nodejs010)
- MariaDB 5.5 (mariadb55)
- MySQL 5.5 (mysql55)
- PostgreSQL 9.2 (postgresql92)
复制代码 更多的软件集可参看这里:https://www.softwarecollections.org/en/scls/。
3.1 安装SCL
在CentOS下访问SCL,需要安装CentOS Software Collections。它是CentOS Extras软件库的一部份,并可通过以下指命进行安装。
- Centos 7
- $ yum install centos-release-scl
- Centos 6
- $ yum install centos-release-SCL
- 注意:Centos6和Centos7的包名是区分大小写的!
复制代码 4. 问题分析
大概的缘故起因是在安装 centos-release-scl 后,系统软件包管理器 yum 大概碰到了问题。centos-release-scl 是用于安装 Software Collections 的软件包,它提供了一种在 CentOS 系统上安装和管理多个软件版本的方法。
在安装 centos-release-scl 后,大概会导致系统的软件仓库配置发生变革,或者出现与旧有软件包版本辩论的环境。这大概会影响 yum 命令的正常运行,由于它依赖于正确的软件包仓库配置和软件包版本管理。
5. 解决方案
进入/etc/yum.repos.d下查看文件。发现有三个yum配置文件。
- ls
- CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-SCLo-scl-rh.repo CentOS-Vault.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-SCLo-scl.repo CentOS-Sources.repo
复制代码 CentOS-Base.repo / CentOS-SCLo-scl-rh.repo /CentOS-SCLo-scl.repo
需要在这三个文件中配置yum源,但是查看发现CentOS-Base.repo配置了阿里云镜像,因此需要修改其他两个文件。配置yum的镜像源。起首对CentOS-SCLo-scl-rh.repo进行修改。
- vi CentOS-SCLo-scl-rh.repo
- # 修改后
- [centos-sclo-rh]
- name=CentOS-7 - SCLo rh
- baseurl=http://vault.centos.org/centos/7/sclo/$basearch/rh/
- gpgcheck=1
- enabled=1
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
复制代码 修改后发现依旧无法使用,将CentOS-SCLo-scl.repoyum源进行修改。
- vi CentOS-SCLo-scl.repo
- # 修改后
- [centos-sclo-sclo]
- name=CentOS-7 - SCLo sclo
- baseurl=http://vault.centos.org/centos/7/sclo/$basearch/rh/
- gpgcheck=1
- enabled=1
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
复制代码 修改之后yum即可正常使用。
- yum clean all
- yum makecache
复制代码 参考文献:https://blog.csdn.net/m0_63303316/article/details/140200199
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |