centos 6.5 错误提示 No more mirrors to try. 如何解决

转载自: http://www.111cn.net/sys/CentOS/91576.htm


在Centos6.5中,使用yum安装openstack时候报错:[Errno 256] No more mirrors to try.,本文我们来分析这个错误,及提供解决方案。



安装openstack最后到dashboard的时候报错:[Errno 256] No more mirrors to try.

很简单:

1.yum clean metadata

2.yum clean all

搞定!

至此,openstack也差不多一个个组件都正常了。接下来准备跑个vyos(电脑是真的有点hold不住)。

后面写个质量高一点的文章“How vRouter live in a cloud?”



YUM安装遭遇: [Errno 256] No more mirrors to try

把YUM配置好后,使用yum命令进行安装时,出现了如下错误:

Downloading Packages:
ftp://192.168.220.46/RHEL6.2/x64/Server/libaio-devel-0.3.107-10.el6.x86_64.rpm: [Errno 14] PYCURL ERROR 19 - "Given file does not exist"
Trying other mirror.


Error Downloading Packages:
  libaio-devel-0.3.107-10.el6.x86_64: failure: libaio-devel-0.3.107-10.el6.x86_64.rpm from RHEL6.2-Server-X64: [Errno 256] No more mirrors to try.

最开始以为是客户端的yum源配置缓存的问题,使用yum clean all命令清除后还是出现同样的错误。

最后竟然发现我的RHEL6.2操作系统原理没有默认安装ftp工具,坑爹啊!没办法只能从光盘再安装一下ftp工具:

[root@instsvr1 Packages]# rpm -ivh ftp-0.17-51.1.el6.x86_64.rpm
warning: ftp-0.17-51.1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:ftp                    ########################################### [100%]


顺便把telnet工具和服务也给装上了:

[root@instsvr1 Packages]# rpm -ivh telnet-*
warning: telnet-0.17-47.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:telnet-server          ########################################### [ 50%]
   2:telnet                 ########################################### [100%]

安装了工具后结果还是报错,整了半天,才发现原来"Given file does not exist"信息是正确的,目录RHEL6.2/x64/Server下的确是没有libaio-devel-0.3.107-10.el6.x86_64.rpm这个文件,原来 在创建repodata时指定的是RPM包目录是RHEL6.2/x64/Packages,而yum工具会直接从RHEL6.2/x64/Server/目录下去寻找安装包,所以在RHEL6.2/x64/Server/目录下把Packages包下相应的文件link过来就可以了。

太粗心了!!!!!!!!




配置RHEL6.2的YUM源

服务器端:
1、    由于yum安装支持三种协议:file://、ftp://和http://,因此如果是使用本地文件作为源,则可直接使用file:\\协议,否则需要先准备好ftp或者http服务。这次测试的是ftp源,因此需要配置好ftp服务,并且要把ftp服务配置为可匿名登录,并且要把rpm包都放在ftp匿名登录的root目录下面。Vsftp匿名登录的配置为:
anonymous_enable=YES
anon_root=/share(这个为vsftp匿名登录的root目录,并且其属性不能为/etc/vsftp/ftpusers,/etc/vsftp/user_list文件中所配置的用户,否则不能匿名登录)
如果不配置匿名登录或者匿名登录root目录设置不对会出现如下错误:
[root@srcbdc yum.repos.d]# yum list
Loaded plugins: aliases, rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
ftp://yumserver/RHEL/Server/repodata/repomd.xml: [Errno 4] IOError: [Errno ftp error] 550 Failed to change directory.
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: RHEL-Server. Please verify its path and try again
2、    先检查yum是否已安装,如果没有安装可以从光盘里面安装
[root@srcbdc ~]# rpm -qa|grep yum
yum-security-1.1.16-13.el5
yum-rhn-plugin-0.5.4-13.el5
yum-metadata-parser-1.1.2-3.el5
yum-updatesd-0.9-2.el5
yum-aliases-1.1.16-13.el5
yum-3.2.22-20.el5
3、    安装另一个用于yum的包createrepo
[root@srcbdc Server]# rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm
warning: createrepo-0.4.11-3.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:createrepo             ########################################### [100%]
这个工具主要是用来生产yum所需要用到的安装包关系的数据库
4、    把系统盘中的Server目录和VT目录拷贝到新的目录里面,我的是从ISO文件里面复制出来的
先挂载ISO文件
[root@srcbdc ~]# mount -o loop /instsvr/ISO/rhel-server-6.2-x86_64-dvd.iso /mnt
Copy文件
[root@srcbdc ~]# mkdir -p /instsvr/RHEL6.2/x64
[root@srcbdc ~]# cp -r /mnt/ /instsvr/RHEL6.2/x64
5、    创建rpm关系数据库
[root@srcbdc ~]# createrepo -g /instsvr/RHEL6.2/x64/Server/repodata/*comps-rhel6-Server.xml -o /instsvr/RHEL6.2/x64/Server -i /instsvr/RHEL6.2/x64/Server/listing /instsvr/RHEL6.2/x64/Packages/
[root@srcbdc ~]# createrepo -g /instsvr/RHEL6.2/x64/HighAvailability/repodata/*comps-rhel6-HighAvailability.xml -o /instsvr/RHEL6.2/x64/HighAvailability -i /instsvr/RHEL6.2/x64/HighAvailability/listing /instsvr/RHEL6.2/x64/Packages/
[root@srcbdc ~]# createrepo -g /instsvr/RHEL6.2/x64/LoadBalancer/repodata/*comps-rhel6-LoadBalancer.xml -o /instsvr/RHEL6.2/x64/LoadBalancer -i /instsvr/RHEL6.2/x64/LoadBalancer/listing /instsvr/RHEL6.2/x64/Packages/
[root@srcbdc ~]# createrepo -g /instsvr/RHEL6.2/x64/ResilientStorage/repodata/*comps-rhel6-ResilientStorage.xml -o /instsvr/RHEL6.2/x64/ResilientStorage -i /instsvr/RHEL6.2/x64/ResilientStorage/listing /instsvr/RHEL6.2/x64/Packages/
[root@srcbdc ~]# createrepo -g /instsvr/RHEL6.2/x64/ScalableFileSystem/repodata/*comps-rhel6-ScalableFileSystem.xml -o /instsvr/RHEL6.2/x64/ScalableFileSystem -i /instsvr/RHEL6.2/x64/ScalableFileSystem/listing /instsvr/RHEL6.2/x64/Packages/

创建rpm包的link文件:

[root@srcbdc ~]# cd /instsvr/RHEL6.2/x64/Server
[root@srcbdc ScalableFileSystem]# for i in `cat listing`; do ln -s ../Packages/$i $i; done
[root@srcbdc ~]# cd /instsvr/RHEL6.2/x64/HighAvailability
[root@srcbdc ScalableFileSystem]# for i in `cat listing`; do ln -s ../Packages/$i $i; done
[root@srcbdc ~]# cd /instsvr/RHEL6.2/x64/LoadBalancer
[root@srcbdc ScalableFileSystem]# for i in `cat listing`; do ln -s ../Packages/$i $i; done
[root@srcbdc ~]# cd /instsvr/RHEL6.2/x64/ResilientStorage
[root@srcbdc ScalableFileSystem]# for i in `cat listing`; do ln -s ../Packages/$i $i; done
[root@srcbdc ~]# cd /instsvr/RHEL6.2/x64/ScalableFileSystem
[root@srcbdc ScalableFileSystem]# for i in `cat listing`; do ln -s ../Packages/$i $i; done


6、    清除yum缓存信息
[root@srcbdc yum.repos.d]# yum clean all
Loaded plugins: aliases, rhnplugin, security
Cleaning up Everything
7、    再使用yum list名称查看rpm包,正常的话会列出所有的rpm包

客户端:

客户端就比较好配置了,只需要在/etc/yum.d.repo/目录小添加本地yum源配置文件即可

[root@instsvr1 yum.repos.d]# cat rhel6.2-x64.repo
[RHEL6.2-Server-X64]
name=Red Hat Enterprise Linux Install Server
baseurl=ftp://192.168.220.46/RHEL6.2/x64/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RedHat-release
[RHEL6.2-HighAvailability-X64]
name=Red Hat Enterprise Linux Install Server
baseurl=ftp://192.168.220.46/RHEL6.2/x64/HighAvailability/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[RHEL6.2-LoadBalancer-X64]
name=Red Hat Enterprise Linux Install Server
baseurl=ftp://192.168.220.46/RHEL6.2/x64/LoadBalancer/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[RHEL6.2-ResilientStorage-X64]
name=Red Hat Enterprise Linux Install Server
baseurl=ftp://192.168.220.46/RHEL6.2/x64/ResilientStorage/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[RHEL6.2-ScalableFileSystem-X64]
name=Red Hat Enterprise Linux Install Server
baseurl=ftp://192.168.220.46/RHEL6.2/x64/ScalableFileSystem/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[RHEL-RPMS]
name=Red Hat Enterprise Linux Install Server
baseurl=ftp://192.168.220.46/rpms
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release




Error downloading packages: perl-Storable-2.45-3.el7.x86_64: [Errno 256] No more mirrors to try. 4:perl-macros-5.16.3-297.el7.x86_64: [Errno 256] No more mirrors to try. perl-Scalar-List-Utils-1.27-248.el7.x86_64: [Errno 256] No more mirrors to try. 4:perl-libs-5.16.3-297.el7.x86_64: [Errno 256] No more mirrors to try. 2:vim-filesystem-7.4.629-7.el7.x86_64: [Errno 256] No more mirrors to try. 1:perl-Pod-Escapes-1.04-297.el7.noarch: [Errno 256] No more mirrors to try. 2:vim-enhanced-7.4.629-7.el7.x86_64: [Errno 256] No more mirrors to try. perl-Text-ParseWords-3.29-4.el7.noarch: [Errno 256] No more mirrors to try. perl-threads-1.87-4.el7.x86_64: [Errno 256] No more mirrors to try. perl-Encode-2.51-7.el7.x86_64: [Errno 256] No more mirrors to try. perl-threads-shared-1.43-6.el7.x86_64: [Errno 256] No more mirrors to try. 1:perl-Pod-Simple-3.28-4.el7.noarch: [Errno 256] No more mirrors to try. perl-Time-Local-1.2300-2.el7.noarch: [Errno 256] No more mirrors to try. perl-Socket-2.010-5.el7.x86_64: [Errno 256] No more mirrors to try. perl-podlators-2.5.1-3.el7.noarch: [Errno 256] No more mirrors to try. perl-File-Temp-0.23.01-3.el7.noarch: [Errno 256] No more mirrors to try. perl-PathTools-3.40-5.el7.x86_64: [Errno 256] No more mirrors to try. 4:perl-Time-HiRes-1.9725-3.el7.x86_64: [Errno 256] No more mirrors to try. perl-HTTP-Tiny-0.033-3.el7.noarch: [Errno 256] No more mirrors to try. perl-constant-1.27-2.el7.noarch: [Errno 256] No more mirrors to try. 4:perl-5.16.3-297.el7.x86_64: [Errno 256] No more mirrors to try. perl-Exporter-5.68-3.el7.noarch: [Errno 256] No more mirrors to try. perl-Getopt-Long-2.40-3.el7.noarch: [Errno 256] No more mirrors to try. 2:vim-common-7.4.629-7.el7.x86_64: [Errno 256] No more mirrors to try. 1:perl-parent-0.225-244.el7.noarch: [Errno 256] No more mirrors to try. perl-Carp-1.26-244.el7.noarch: [Errno 256] No more mirrors to try. perl-File-Path-2.09-2.el7.noarch: [Errno 256] No more mirrors to try. perl-Filter-1.49-3.el7.x86_64: [Errno 256] No more mirrors to try. perl-Pod-Perldoc-3.20-4.el7.noarch: [Errno 256] No more mirrors to try. perl-Pod-Usage-1.63-3.el7.noarch: [Errno 256] No more mirrors to try.
06-17
<think>我们正在解决yum或dnf在下载perl和vim相关包时出现的"[Errno256]Nomoremirrorstotry"错误。这个错误通常表示yum无法从配置的仓库中下载元数据或包,可能是由于网络问题、仓库配置错误、仓库不可用或缓存问题等。根据引用[1]和引用[2]提供的思路,我们可以尝试以下步骤:1.检查网络连接:确保服务器可以访问互联网,特别是能够访问配置的yum仓库地址。2.检查仓库配置:确保仓库配置文件(/etc/yum.repos.d/目录下的.repo文件)中的baseurl或mirrorlist指向可用的镜像。3.清理yum缓存:旧的缓存可能导致问题,清理缓存后重试。4.替换为国内镜像源:比如阿里云镜像,以解决国外镜像访问慢或不可用的问题。5.检查软件包名称:确保要安装的软件包名称正确。由于用户特别提到要下载perl和vim相关包,我们可以针对这两个软件包进行解决。步骤详细说明:步骤1:检查网络连接使用命令`ping`或`curl`测试网络连通性,例如:pingmirrors.aliyun.com或者curl-Ihttps://mirrors.aliyun.com步骤2:检查仓库配置查看/etc/yum.repos.d/目录下的repo文件,确认是否有可用的仓库配置。步骤3:清理yum缓存yumcleanallyummakecache如果使用dnf,则使用:dnfcleanalldnfmakecache步骤4:替换为国内镜像源(以阿里云为例,适用于CentOS/RHEL系统)参考引用[1]和[2]的做法:a.备份原有的仓库配置文件:mkdir/etc/yum.repos.d/backupmv/etc/yum.repos.d/*.repo/etc/yum.repos.d/backup/b.下载阿里云的仓库配置文件(这里以CentOS7为例,其他版本请替换版本号):注意:如果系统是RedHat,需要先卸载自带的yum(如引用[1]所述),然后安装阿里云的yum包,但通常我们直接替换repo文件即可。下载CentOS-Base.repo到/etc/yum.repos.d/目录:curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-7.repo或者(对于RedHat系统,可能需要将`$releasever`替换为具体的版本号,比如7):sed-i's/\$releasever/7/g'/etc/yum.repos.d/CentOS-Base.repoc.运行清理缓存并重新生成缓存:yumcleanallyummakecache步骤5:安装软件包yuminstall-yperlvim如果问题仍然存在,可以尝试禁用其他仓库,只使用阿里云仓库:yum--disablerepo=\*--enablerepo=baseinstall-yperlvim另外,如果系统是RedHat,并且没有订阅,可能需要将系统转换为CentOS(不推荐)或者使用其他方法(如使用第三方仓库epel),但这里我们主要解决镜像源问题。如果上述步骤不能解决问题,可能需要查看具体的错误信息,调整镜像源地址。注意:引用[1]中提到卸载RedHat自带的yum源并安装阿里云的yum包,但这一步通常只在RedHat系统中需要,因为RedHat的yum需要订阅。如果用户系统是RedHat,可以参考以下步骤:1.卸载RedHat自带的yum:rpm-qa|grepyum|xargsrpm-e--nodepsrpm-qa|grepyum2.下载阿里云提供的yum包(以CentOS7为例):wgethttp://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpmwgethttp://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpmwgethttp://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm如果wget不可用,可以使用curl-O下载。3.安装这些包:rpm-ivhyum-*rpm-ivhyum-metadata-parser-*.rpmrpm-ivhyum-plugin-fastestmirror-*.rpm4.然后按照步骤4配置阿里云镜像。但是,如果用户使用的是dnf(Fedora或CentOS8+),则步骤类似,但仓库配置文件会有所不同。根据用户的问题,我们主要针对perl和vim包,所以可以尝试直接使用阿里云镜像。下面给出一个针对RHEL/CentOS7系统的完整解决方案(假设用户系统为RHEL7,且没有有效的订阅):</think>### 解决yum/dnf下载perl和vim时出现"[Errno 256] No more mirrors to try"错误错误通常由以下原因导致: 1. **仓库配置失效**:默认仓库地址不可用 2. **缓存损坏**:本地yum元数据缓存异常 3. **网络限制**:无法访问官方仓库 4. **软件包冲突**:系统自带yum组件不兼容 --- ### 解决方案(以CentOS/RHEL为例): #### 📌 步骤1:清理yum缓存 ```bash sudo yum clean all # 清理所有缓存 sudo rm -rf /var/cache/yum/* # 强制删除残留缓存 sudo yum makecache # 重建元数据缓存 ``` #### 📌 步骤2:替换阿里云镜像源 ```bash # 备份原有仓库配置 sudo mkdir /etc/yum.repos.d/backup sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ # 下载阿里云Base源 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # 下载EPEL源(额外软件包) sudo curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo # 替换变量(针对RHEL系统) sudo sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo ``` #### 📌 步骤3:手动安装关键依赖(如系统yum损坏) ```bash # 下载必要组件(示例版本号,需匹配系统) curl -O https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm curl -O https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-54.el7_8.noarch.rpm # 强制安装 sudo rpm -ivh --nodeps yum-*.rpm ``` #### 📌 步骤4:安装目标软件包 ```bash sudo yum install -y vim-enhanced perl perl-devel ``` --- ### 验证安装 ```bash vim --version | head -n1 # 应显示VIM版本 perl -v | head -n2 # 应显示Perl版本 ``` --- ### 关键配置说明 1. **`$releasever`替换**: - RHEL/CentOS 7 → 替换为`7` - RHEL/CentOS 8 → 替换为`8` 2. **优先使用基础源**: ```bash sudo yum --disablerepo=* --enablerepo=base install vim ``` > 💡 **提示**:若使用dnf(Fedora/CentOS 8+),将上述命令中的`yum`替换为`dnf`即可,仓库文件路径相同[^1][^2]。 --- ### 常见问题排查 | 现象 | 解决方法 | |------|----------| | 证书错误 | `sudo sed -i 's/https/http/g' /etc/yum.repos.d/*.repo` | | GPG校验失败 | `sudo yum install --nogpgcheck vim` | | 特定镜像不可达 | 替换`mirrors.aliyun.com`为`mirrors.tuna.tsinghua.edu.cn` | > ⚠️ 操作前建议备份系统:`sudo tar -zcvf /backup/yum_repo_backup.tar.gz /etc/yum.repos.d/`
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值