赞
踩
最近发现,在使用yum更新包的时候,常报下面的错误:
有时候当替换了几个镜像后就可以了。但经常也会发现最终是失败的。由于我的系统是依赖yum更新的,若使用国外网络源的时候出这样的问题,影响挺大的。
Google搜索了一下,是一个常见问题,也提供了一些方法。只是后来发现,这些方法要不就是没有说清楚,要不就是误解。经过测试,最终基本可以解决了。
一、原因
从该地址找到一段说明:点击
大概的意思是说:
参考该文章的内容,我们可以看看yum更新下载的数据: /var/cache/yum,根据你定义的repo.d文件内容,会分开多层目录,每层代表一个更新路径。
找到原因,解决就不难了。
二、解决
1、清空缓存
执行:
先把就的缓存数据都去掉。
2、下载metadata和校验数据
先进入yum对应的目录,再下载:
3、校验数据
执行:
对比repomd.xml中的信息:
若数据正确,则说明metadata和校验数据是匹配的。可以使用yum更新了,不会再重新下载metadata。
否则,可以再等待一下,或需要从其他的镜像获取更新咯。
三、建议
因为我们不能控制镜像更新的速度和时间,而我们的工作只是避免了yum可能发生误判的情况,但并不能完全保证上面的工作是成功的。
从尽可能避免该问题的角度出发,有几个建议:
1、选择好的镜像
设置yum.repos.d中baseurl或mirrorlist从好的镜像下载。若知道某个镜像速度快,则干脆用baseurl固定,而不要使用mirrorlist了。
2、排查网络问题
网上提供的方法大部分是转载这里 的。其建议使用--cache=off参数(表示不使用服务器中的高速缓存中的数据)。
但实际上,我发现除非网络有问题,否则是否使用该参数拿回来的数据不应该有有区别的。
如:
※primary.xml.gz是使用--cache=off参数的,而primary.xml.gz.1是没有使用该参数的。
所以,如果网络出现问题,是会影响到yum下载数据的完整性的。而使用--cache=off既然没坏,不妨使用咯。
四、参考资料
http://lists.freshrpms.net/pipermail/freshrpms-list/2005-May/013037.html
http://lists.freshrpms.net/pipermail/freshrpms-list/2004-November/011553.html
http://www.fedorachina.cn/index.php?topic=26.0
http://www.linuxsir.org/bbs/printthread.php?t=316600
http://sillyboy422.spaces.live.com/blog/cns!aab0c086212d33cc!195.entry
相关日志
[转]在64位的 CentOS 上只安装64位的软件包
[原]使用fastestmirror插件给yum加速
[转]yum.conf 配置文件详解
[原]创建VPS OS模板
[原]yum命令常见参数
转载地址:
http://www.linuxfly.org/post/174/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。