[CentOS] [Errno 256] No more mirrors to try

文章详细描述了在 CentOS6.5 环境下,通过自建repos库后,执行 yum install 命令时遇到 [Errno 256] No more mirrors to try 错误的解决方案。主要原因是 createrepo 命令的参数设置不当导致 repodata 路径关系逻辑错误。通过实验发现,正确执行 createrepo ./Packages 即可解决问题。

环境:CentOS 6.5

问题:自建repos库后,执行sudo yum install ***,出现[Errno 256] No more mirrors to try.错误提示。

尝试解决途径:按照网上的博客的提示,尝试使用sudo yum clean all或者sudo yum makecache等方法,最终都无济于事。

问题排查:由于网络的方法都围绕yum clean all进行,而我这里有没有效果。所以,怀疑是createrepo命令的参数设置有问题。

我当前的目录是/usr/repo,当前目录内有一个文件夹Packages用来存放rpm文件,我的创建指令是

createrepo ./Packages -o ./
随后当前目录的内容有./Packages和./repodata两个文件夹。

我的yum.conf文件配置项设置为

baseurl=/home/usr/repo
我当初的设想是,运行yum install **.rpm后,yum会到/home/usr/repo去找repodata文件夹,然后读取里面的数据,随后将分析结果上报,等待用户的[Y/N]确认操作。用户选择Y后,便下载文件进行rpm安装。

此时提示错误:[Errno 256] No more mirrors to try.

后来将rpm文件都拷贝到/home/usr/repo目录内,结果没有提示这类错误。

所以,可以确认问题出子在生成repodata的时候,路径关系逻辑出现来错误。

createrepo默认是将repodata放置在搜索其实文件加下的,这样repodata的内部文件描述rpm路径的路基关系才能成立。

于是乎,做了个实验,执行命令

createrepo ./Packages 
结果,在./Packages文件夹内部生成了repodata文件夹。

所以,不要用-o指令指定repodata的输出目的路径。

解决方法

使用正确的指令

createrepo ./
即可!

CentOS/RHEL 7 上下载多个软件包时出现 `Error 256: No more mirrors to try` 的问题,通常是由于 YUM 无法从配置的镜像源中获取所需的 RPM 包。这种情况可能由以下几种原因引起,并可以通过相应的措施解决: ### 网络连接问题 确保服务器能够正常访问互联网,并且可以连接到配置的镜像源地址。如果服务器位于防火墙或代理之后,则需要检查网络设置并正确配置代理[^2]。 ### 镜像源配置错误 某些第三方仓库(如 EPEL)的 `.repo` 文件可能存在错误或者指向了不可用的 URL。例如,在引用中提到的 `epel.repo` 源导致 Ansible 安装失败的情况,可以通过备份旧的配置文件并重新获取最新的版本来修复: ```bash # cd /etc/yum.repos.d/ # mv epel.repo epel.repo.bak # yum clean all # yum makecache ``` ### 软件包名称或版本不存在 尝试安装的软件包可能已经被移除、重命名,或者指定的版本不再提供支持。在这种情况下,应确认软件包的确切名称和可用版本。使用 `yum search <package_name>` 可以查找当前仓库中存在的相关软件包。 ### YUM 缓存损坏 YUM 使用本地缓存来加速操作,但有时这个缓存可能会变得过期或损坏。清理现有的缓存并重建可以帮助解决问题: ```bash # yum clean all # yum makecache ``` ### Delta RPMs 功能未启用 如果日志中还提示了 `Delta RPMs disabled because /usr/bin/applydeltarpm not installed.` 这样的信息,则表明系统缺少处理 Delta RPM 所需的工具。安装 `deltarpm` 包即可启用该功能: ```bash6 # yum install deltarpm ``` ### 替代方案 当官方或默认镜像源不可用时,可以考虑更换为其他可靠的镜像源,比如阿里云提供的镜像服务。更新 `/etc/yum.repos.d/` 目录下的相应 `.repo` 文件,将其中的基础 URL 更改为镜像站点的地址。 通过以上方法通常可以解决大多数因镜像源问题而导致的 `No more mirrors to try` 错误。如果问题仍然存在,建议查阅具体的错误日志以获得更详细的诊断信息,并参考 CentOS 官方文档中的 [YUM Errors](https://wiki.centos.org/yum-errors) 页面寻求进一步的帮助[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值