目录

报错描述

解决方案

总结


报错描述

我的 CentOS 7 的更新源使用的是直接从 163 镜像站上下载的更新源文件.

今天在使用 yum makecache 命令从更新服务器上把软件包的信息下载到本地缓存起来时遇到了如下报错:

Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration

报错截图如下:


图 1

而且在我使用 yum install htop 命令安装 htop 的时候, 还提示:

没有可用软件包 htop。
错误:无须任何处理

但是, 正常情况下 CentOS 7 的源里面应该是有 htop 这个软件包的, 可以直接使用 yum install htop 成功安装(我之前安装过).

上述问题的相关截图如下:


图 2

解决方案

分析上面的报错, 主要还是软件源文件出了问题, 于是我们先进入软件源配置文件所在的目录下:

cd /etc/yum.repos.d/

ls 查看一下, 回显如下:

[root@localhost yum.repos.d]# ls
CentOS7-Base-163.repo    CentOS-CR.repo         CentOS-Media.repo
CentOS-Base.repo         CentOS-Debuginfo.repo  CentOS-Sources.repo
CentOS-Base.repo.backup  CentOS-fasttrack.repo  CentOS-Vault.repo
[root@localhost yum.repos.d]#

从对报错内容的分析来看, 应该是软件源有重复(“listed more than once”), 所以这里我们尝试删除一些上面的软件源配置文件.
在删除之前, 先对 /etc/yum.repos.d/ 目录下的文件做一个整体的备份, 以便于尝试失败后的还原, 操作过程如下:
将 /etc/yum.repos.d/ 目录下的文件整体压缩成一个 .zip 文件:

zip centos7-repo.zip /etc/yum.repos.d/*

然后执行删除操作:

rm -rf CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo

之后把 CentOS7-Base-163.repo 中的内容复制进 CentOS-Base.repo:

cp -p CentOS7-Base-163.repo CentOS-Base.repo

最后删除 CentOS7-Base-163.repo:

rm -rf CentOS7-Base-163.repo

之后运行如下命令重建缓存, 没有再出现"Repository base is listed more than once in the configuration"的报错:

yum clean all
yum makecache

但是, 在我尝试使用 yum 命令安装软件时, 仍然遇到了"没有可用软件包 XXX"的报错, 如下:

[root@localhost yum.repos.d]# yum install htop
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
没有可用软件包 htop。
错误:无须任何处理

“没有可用软件包"说明在 YUM 源中没有对应的软件包(163 的源本身应该是没有问题的, 这是一个大家都常使用的 Linux 方面的国内软件源).
其实, 在 CentOS 和 RHEL 等操作系统中, 常使用的软件源不仅有 YUM, 还有 EPEL. EPEL 英文全称为:“Extra Packages for Enterprise Linux”. 直译为中文就是"用于企业 Linux 的额外软件包”. EPEL 是 Fedora 的一个项目, 有关该项目的官方说明可以在下面的链接中找到:

EPEL - Fedora Project Wiki

这里我摘录一段 Fedora 对 EPEL 项目的说明:

企业版 Linux 附加软件包(以下简称 EPEL)是一个 Fedora 特别兴趣小组,用以创建、维护以及管理针对企业版 Linux 的一个高质量附加软件包集,面向的对象包括但不限于 红帽企业版 Linux (RHEL)、 CentOS、Scientific Linux (SL)、Oracle Linux (OL) 。

EPEL 的软件包通常不会与企业版 Linux 官方源中的软件包发生冲突,或者互相替换文件。EPEL 项目与 Fedora 基本一致,包含完整的构建系统、升级管理器、镜像管理器等等。
– 来自: EPEL/zh-cn - Fedora Project Wiki

在 CentOS 7 中安装 EPEL 源的命令如下:

yum install -y epel-release

安装完成后, 在 /etc/yum.repos.d 目录下会多出来下面两个文件, 这两个文件就是 EPEL 源的配置文件:

  • epel.repo
  • epel-testing.repo

查看 epel.repo 文件中的内容可以发现其中软件源的地址指向的是 https://mirrors.fedoraproject.org/epel-testing.repo 这个文件中的软件源的地址也是指向的是 https://mirrors.fedoraproject.org/. 为了加快软件安装速度, 我们可以将其更改为国内的 EPEL 源, 操作步骤如下:

进入 /etc/yum.repos.d 目录, 下载阿里云 EPEL 源:

wget http://mirrors.aliyun.com/repo/epel-7.repo

备份 Fedora 官方提供的 EPEL 源配置文件:

cp -p epel.repo epel.repo.bak
cp -p epel-testing.repo epel-testing.repo.bak

删除 epel-testing.repo:

rm -rf epel-testing.repo

将 epel-7.repo 中的内容覆盖写入到原来的 epel.repo 文件中:

cp -p epel-7.repo epel.repo

删除 epel-7.repo 文件:

rm -rf epel-7.repo

重新生成缓存:

yum clean all
yum makecache

之后可以正常安装软件.

总结

遇到"Repository base is listed more than once in the configuration"的问题要考虑系统中是否存在重复的软件源, 遇到"没有可用软件包 XXX"的问题首先要确认要安装的软件包名称是否写对了, 例如安装 pip 的命令不是 yum install pip, 而是 yum install python-pip, 在此之后如果问题仍然存在就需要考虑当前系统中是否正确配置了 YUM 和 EPEL 两个软件源.

linux centos7 报错: “Repository base is listed more than once in the configuration“和“没有可用软件包 xxx“ 解决方法相关推荐

  1. linux perl 报错 Can‘t locate CPAN.pm in @INC (@INC contains: inc /usr/local/lib64/perl5 /usr.... 解决方法

    环境:CentOS release 6.5 错误情况:部署mysql 5.6 MHA执行到perl Makefile.PL的时候,报错Can't locate ExtUtils/Embed.pm in ...

  2. manjaro软件源报错 不停看到错误 PackageName: signature from User email@archlinux.org is invalid 的几种解决方法...

    对于报错情况, 格式大致如下: 1 error: PackageName: signature from "User <email@archlinux.org>" is ...

  3. Kali Linux 中报错:E: 您在 /var/cache/apt/archives/ 上没有足够的可用空间 的解决方法。

      How to solve the error reporting of " E: You don't have enough free space in /var/cache/apt/a ...

  4. tomcat 启动有报错,但是很快就自动关闭了,太快了看不到信息,解决方法

    用tomcat,经常会遇到报错,但是又会自动关闭,很让人烦.以下有几招很好用 第一,找日志文件D:\Program Files\apache-tomcat-5.5.28\logs.但有时很奇怪不会产生 ...

  5. GX Works2安装引导程序报错“无法安装以下功能: .net framework 3.5 包括 net 2.0 和 3.0”解决方法。

    部分电脑在安装GX Works2软件时,会出现如题目的报错问题,以下是解决办法: 可以通过 Windows 控制面板启用 .NET Framework 3.5. 此选项需要 Internet 连接. ...

  6. win7 64位安装Vector NTI软件报错“RUNdll启动C:\program时出现问题,找不到指定的模块”的解决方法

    有些时候64位的win7系统安装VectorNTI会报错:RUNdll启动C:\program时出现问题,找不到指定的模块 这个和系统有关,很多系统是经过修改的,而不是原版的. 我试过几个不同的64位 ...

  7. Kali Linux 中报错:E: 您在 /var/cache/apt/archives/ 上没有足够的可用空间的解决方法。

    要解决此问题,您可以按照以下步骤操作: 打开一个终端窗口. 运行命令sudo dpkg --configure -a以重新配置包. 等待该过程完成. 运行命令sudo apt-get update更新 ...

  8. Win10报错! 由于找不到hhctrl.ocx win10运行帮助时hhctrl.ocx缺失的解决方法

    hhctrl.ocx下载地址 1.到网上下载hhctrl.ocx,然后将下载的ocx文件复制到C:\Windows\System32目录下(Win7.Vista系统的路径是一样的,64位放到C:\Wi ...

  9. Postman请求linux服务器报错:503Forwarding failure,由于服务器端口未开放;服务器端口开放与关闭

    Postman请求linux服务器报错:503Forwarding failure,由于服务器端口未开放:服务器端口开放与关闭 文章目录: 1 问题分析 2 在Centos上开启和关闭端口 2.1 C ...

最新文章

  1. sql with(lock) 与事务
  2. 设计赋能,数联杭温!2020温州“市长杯”·数字设计(杭州)专项赛开始报名啦!...
  3. 服务器端如何开启GZIP压缩功能
  4. Spring-aop-AnnotationAwareAspectJAutoProxyCreator类
  5. Linux/Unix系统下nginx+php安装简明教程
  6. java guava cache_java使用guava cache实现本地缓存
  7. javamail 发送、读取邮件
  8. internet信息服务器管理器,细述Win10系统上开启internet信息服务(iis)管理器的操作步骤...
  9. 计算机无法上网修复工具,lsp怎么修复解决上不了网问题汇总
  10. mysql 求季度产量平均值
  11. Image caption领域的研究现状及分析
  12. 解决问题:PostgreSQL类型为 json, 但表达式的类型为 character varying
  13. 【电路设计】晶振选择和负载容抗匹配参考指南
  14. windows server 2003 网络操作系统项目教程 特制版
  15. server服务(hander传值)
  16. 天使投资和风险投资有何区别?
  17. 数据治理和数据安全治理有何不同?
  18. SOA, 从复合应用出发
  19. 英语面试问题及答案(转)
  20. 解决Windows键+L不能锁屏的问题

热门文章

  1. PHP文件头部(header)解释
  2. win2008r2下安装sql2008r2初版
  3. 技术文章是怎样炼成的?
  4. 怎样将.dotnetcharting控件生成的图标打印
  5. oracle if=,oracle中if/else的三种实现方式详解
  6. Linux 操作系统原理 — 零拷贝技术
  7. 【数据库】阿里云教你快速掌握SQL语句使用
  8. 收藏:《Exchange 2013 OWA/ECP 登陆后白屏》
  9. 《iOS 6高级开发手册(第4版)》——导读
  10. ShineTime - 带有 CSS3 闪亮特效的缩略图相册