虚拟机上面装了Redhat6.5虚拟机,用yum安装总是提示没有包,根据网上的提示,修改yum源,踩了好几个坑,特记录下来,备查
按照步骤:
1.清除原有RHEL的YUM及相关软件包。
rpm -qa | grep yum | xargs rpm -e --nodeps
rpm -qa |grep python-urlgrabber|xargs rpm -e --nodeps
2.下载centos6的相关软件包。
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-73.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
*注释:这些软件包的具体的版本,请到http://mirrors.163.com/centos/6/os/x86_64/Packages/ 目录下,选择下载上述软件包。网上很多文章没法直接使用就是因为软件包的版本问题
3.安装软件包。
rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
rpm -ivh yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm yum-3.2.29-73.el6.centos.noarch.rpm
*注释yum-plugin-fastestmirror和yum-3.2.29要一起安装。
如果按照遇到问题:发现错误,python-urlgrabber版本必须大于等于3.9.1-10
# rpm -ivh yum-3.2.29-73.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm
warning: yum-3.2.29-73.el6.centos.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
python-urlgrabber >= 3.9.1-10 is needed by yum-3.2.29-73.el6.centos.noarch
查看系统的python信息
# rpm -qa|grep python
发现python-urlgrabber-3.9.1-9.el6.noarch 版本低于3.9.1-10
卸载:python-urlgrabber-3.9.1-9.el6.noarch
rpm -e python-urlgrabber-3.9.1-9.el6.noarch
安装:rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm
安装yum
# rpm -ivh yum-*
更改yum源
cd /etc/yum.repos.d/
下载配置文件
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
把CentOS6-Base-163.repo放置/etc/yum.repos.d/
把里面的$releasever改成6 (我下载的是centos6 yum源)
清理yum缓存
#yum clean all
将服务器软件包信息缓存至本地,提高搜索安装效率
#yum makecache
报错,原因是下载repomd.xml找不到yum源,检查下载链接,发现$releasever没有自动转义成6,而是表示成%24releasever
执行:
/usr/bin/python -c 'import yum, pprint; yb = yum.YumBase(); pprint.pprint(yb.conf.yumvar, width=1)' 检查发现确实$releasever没有定义 解决方法是编辑/etc/yum.conf文件,将distroverpkg改为redhat-release即可
来源:
http://blog.csdn.net/kimyoungvon/article/details/53103300
http://www.opstool.com/article/294
https://www.landui.com/help/show-1451.html