[问题解决]RedHat7更换CentOS7的yum源时踩过的坑
更换yum源的流程
- 查看当前yum程序
$ rpm -qa|grep yum
这里推荐将其结果截屏或拷贝出来,以免后面报错修复。
- 删除原有yum源
$ rpm -aq | grep yum|xargs rpm -e --nodeps
- 判断自己的系统适合哪个CentOS源
放在第一位的判断标准就是系统自带python的版本。
如果自带python2.6版本,那么你比较适合CentOS 6.9系统,你所需要的rpm包的存放地址为
http://mirrors.163.com/centos/6.9/os/x86_64/Packages/
如果自带Python2.7版本,那么你比较适合CentOS 7.0系统,你所需要的rpm包的存放地址为
http://mirrors.163.com/centos/7/os/x86_64/Packages/
(我这里演示的就是安装CentOS7的yum源)
- 使用CentOS的yum源下载新的yum安装包
我就不推荐使用wget命令获取rpm安装包了,因为我懒得写并且wget老是会下载不下来,这里推荐下面的方法:
(如果网络不好)推荐直接用浏览网页http://mirrors.163.com/centos/7/os/x86_64/Packages/,然后分别按关键词python-iniparse,yum-metadata-parser,yum-,yum-plugin-fastestmirror搜索出对应的四个rpm文件,点击链接用浏览器或迅雷下载。下载文件到本地再上传到服务器上。
- 安装yum源
首先切换到rpm文件存放地址。
$ rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
$ rpm -ivh yum-3.4.3-158.el7.centos.noarch.rpm yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm
最后两个包一起装,不然会报错,因为他们之间存在依赖关系.
- 更改yum源
#我们使用网易的CentOS镜像源
$ cd /etc/yum.repos.d/
$ rm -f /etc/yum.repos.d/redhat.repo
- 清理yum缓存
$ yum clean all # 清除原有缓存
$ yum makecache # 将服务器上的软件包信息缓存到本地,以提高搜索安装软件的速度 #
$ yum update
现在可以使用CentOS的yum源在线安装软件了!
- 参考教程:
https://www.cnblogs.com/wutengbiao/p/4188986.html
踩坑1:rpm版本过低
安装yum-3.4.3-118.el7.centos.noarch.rpm时报错了。

这是因为我的python-urlgrabber版本为小于3.10-8,可以用下面的命令来查看python-urlgrabber的版本。
$ rpm -qa|grep python-urlgrabber

可以使用下面的命令查看当前rpm命令的版本。
$ rpm –version

其中python-urlgrabber是很好更新的,在http://mirrors.163.com/centos/7/os/x86_64/Packages/搜索并下载python-urlgrabber-3.10-8.el7.noarch.rpm,然后使用命令安装即可
$ rpm -Uvh python-urlgrabber-3.10-8.el7.noarch.rpm
至于rpm的更新我是踩了不少坑。开始觉得用rpm自我更新可能会出问题,然后打算想采用CentOS6.9的yum源,但是报错结果是其依赖于python2.6。如果卸载系统自带的python,那么yum命令和rpm命令都不能使用了。所以判断这样做更不合适。

直到参考了https://www.cnblogs.com/jym1/p/8088005.html,才明白可以用rpm包的方式更新rpm。
还是在http://mirrors.163.com/centos/7/os/x86_64/Packages/这里找到了rpm-4.11.3-25.el7.x86_64.rpm,然后使用命令(这个命令会不考虑依赖关升级rpm命令)
$ rpm -Uvh rpm-4.11.3-25.el7.x86_64.rpm --nodeps

如果命令里不加—nodeps,结果是这样的:

升级完python-urlgrabber和rpm-4.11.3-25就可以使用rpm命令安装yum了,详细参考第一节的第五步。
但是由于rpm命令的升级没有考虑他的依赖,所以在使用yum命令时经常会提示一些信息:
|
** Found 6 pre-existing rpmdb problem(s), 'yum check' output follows: PackageKit-0.8.9-11.el7.x86_64 has missing requires of PackageKit-backend anaconda-19.31.79-1.el7.x86_64 has missing requires of yum-utils >= ('0', '1.1.11', '3') rhn-check-2.0.2-5.el7.noarch has missing requires of yum-rhn-plugin >= ('0', '1.6.4', '1') rpm-build-4.11.1-16.el7.x86_64 has missing requires of rpm = ('0', '4.11.1', '16.el7') rpm-libs-4.11.1-16.el7.x86_64 has missing requires of rpm = ('0', '4.11.1', '16.el7') rpm-python-4.11.1-16.el7.x86_64 has missing requires of rpm = ('0', '4.11.1', '16.el7') |
可以这样做:使用yum命令来安装或更新rpm和yum的依赖包。
$ yum install yum-utils
$ yum install yum-rhn-plugin
$ yum update rpm-build
$ yum update rpm-libs
$ yum update rpm-python
踩坑2:一直找不到PackageKit-backend
坑1解决后,6个提示信息只剩下一个:
|
** Found 6 pre-existing rpmdb problem(s), 'yum check' output follows: PackageKit-0.8.9-11.el7.x86_64 has missing requires of PackageKit-backend |
PackageKit-backend在任何一个rpm源里都是找不到的,我开始认为PackageKit应该是Redhat遗留下来的,二者不兼容,这里选择将PackageKit卸载,重新安装CentOS 7的PackageKit。
$ rpm -aq | grep PackageKit|xargs rpm -e --nodeps # 卸载PackageKit
然后使用yum命令时系统提示:
|
gnome-packagekit-3.8.2-10.el7.x86_64 has missing requires of PackageKit >= ('0', '0.5.0', None) gnome-packagekit-3.8.2-10.el7.x86_64 has missing requires of PackageKit-device-rebind >= ('0', '0.5.0', None) gnome-packagekit-3.8.2-10.el7.x86_64 has missing requires of PackageKit-libs >= ('0', '0.5.0', None) gnome-packagekit-3.8.2-10.el7.x86_64 has missing requires of libpackagekit-glib2.so.16()(64bit) gnome-settings-daemon-updates-3.8.6.1-9.el7.x86_64 has missing requires of libpackagekit-glib2.so.16()(64bit) realmd-0.14.6-6.el7.x86_64 has missing requires of libpackagekit-glib2.so.16()(64bit) |
这让人很难受,下载CentOS 7的PackageKit,发现它的版本如下。使用yum命令安装后系统提示缺失其他软件,
这里就不列出来了。

仍然让人很难受,无奈只好谷歌搜索PackageKit-0.8.9-11.el7.x86_64,在http://buildlogs-seed.centos.org/c7.00.02/PackageKit/20140529191922/0.8.9-11.el7.x86_64/ 找到了相应的rpm包。

将rpm包下载下来后,用rpm命令一一安装。我这时想起来当时用rpm -qa|grep yum命令时有一条是PackageKit-yum*****,而我现在使用rpm -qa|grep yum所得到的结果没有PackageKit-yum*****了,我就尝试从这个网站上下载PackageKit-yum-0.8.9-11.el7.x86_64.rpm 和PackageKit-yum-plugin-0.8.9-11.el7.x86_64.rpm,使用rpm命令安装,发现安装了PackageKit-yum-0.8.9-11.el7.x86_64.rpm之后系统就不提示信息了,至此问题得到完满解决。
另记:PackageKit似乎是用来自动更新软件的,yum命令可能会被它占用很久,如果想要停止PackageKit自动更新,可以参考:centos7下yum升级被PackageKit锁定
在这个过程中不仅更新了yum源,还更新了rpm命令,处理了包依赖的问题,消除了每一条系统提示信息。
这个过程给我的教训就是:以后用rpm -aq | grep yum|xargs rpm -e --nodeps命令卸载软件之前一定要使用rpm -qa|grep yum记录下来所有的软件,用于后期比较。发现有缺少的东西最好补上,说不定就能解决问题。
[问题解决]RedHat7更换CentOS7的yum源时踩过的坑的更多相关文章
- redhat 7.2更新yum源时踩的坑
一.update yum .先查看redhat7.2中yum的包版本 [root@localhost jiayimeng]# rpm -qa | grep yum -.el7.noarch -.el7 ...
- [转]centos7 修改yum源为阿里源
centos7 修改yum源为阿里源,某下网络下速度比较快 首先是到yum源设置文件夹里 cd /etc/yum.repos.d 接着备份旧的配置文件 sudo mv CentOS-Base.repo ...
- centos7 修改yum源为阿里源
centos7 修改yum源为阿里源,某下网络下速度比较快 首先是到yum源设置文件夹里 安装base reop源 cd /etc/yum.repos.d 接着备份旧的配置文件 sudo mv Cen ...
- 修改Centos7的yum源
以下为修改Centos7的yum源: 1. 备份原镜像文件,便于后期恢复 [root@keepmydream ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc ...
- CentOS7搭建yum源仓库(阿里源)
文章目录 注意:环境要求 1.配置服务器端yum 1.1.安装yum源工具 1.2.配置nginx 1.2.1.配置nginx页面目录 1.3.替换yum源文件 1.4.建立yum源仓库 2.配置客户 ...
- Centos7 更换为网易YUM源
当我们刚刚安装系统的时候 yum 的速度那是真滴慢所以我们就需要一个更加快速的镜像,这时候网易镜像带给我们便捷.下面来一起更换吧! 备份当前的 yum 源 # yum 源在目录 /etc/yum.re ...
- redhat7.4 使用centos yum源
新安装了redhat7.4安装后,登录系统,使用yum update 更新系统.提示: This system is not registered to Red Hat Subscription Ma ...
- CentOS7 设置yum源
1.关闭防火墙 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机自关闭 systemctl disable firewalld 临时打开防火墙 systemctl st ...
- 利用阿里云提供的镜像快速更换本地的yum源
打开网页:http://mirrors.aliyun.com/ 从“ 文件列表 ”找到自己的系统: Mirror Last update Help CPAN 2015-07-15 15:36:50 ...
随机推荐
- c++ 各种类型转换
1.int 2 string 法1:c++11里面的to_string #include <string> std::); //or auto s = std::to_string(); ...
- META标签之关键词、网页描述设置帮助SEO网站优化(转)
ASP.NET 4.0 Web Forms针对SEO改进措施中有一个是在Page类中加了2个新属性:MetaKeywords 和MetaDescription,它们使得在后台代码类中用编程的手法设 ...
- 【转】Tomcat 快速入门
本文转载自:https://www.cnblogs.com/jingmoxukong/p/8258837.html?utm_source=gold_browser_extension 目录 Tomca ...
- 原生JavaScript插件编写指南(转载)
原生js开发指南 https://www.jianshu.com/p/e65c246beac1 在jQuery大量使用的环境下,目前网上的众多jQuery插件也能基本满足要求,但是在项目具体需求下,有 ...
- oracle函数,游标,视图使用总结
oracle函数或者叫存储过程,在实际的开发过程中对于复杂的业务需求是非常有用的,非常有效率的也是非常好玩儿的一个技术点. 平常在开发过程中对于CRUD功能较多.一般SQL即可应付,大不了就是长一点而 ...
- 实现私有化(Pimpl) --- QT常见的设计模式
转载自:http://blog.sina.com.cn/s/blog_667102dd0100wxbi.html 一.遇到的问题 1.隐藏实现 我们在给客户端提供接口的时候只希望能暴露它的接口,而隐藏 ...
- POJ 1789 Truck History (Kruskal 最小生成树)
题目链接:http://poj.org/problem?id=1789 Advanced Cargo Movement, Ltd. uses trucks of different types. So ...
- GoldenGate 12.3发布
新特性: oracle db1. 支持12.2 oracle db2. 支持微服务架构, 可以使用restful api 管理OGG3. Parallel replicat,性能比integrated ...
- SRTP参数及数据包处理过程(转)
源: SRTP参数及数据包处理过程
- Eloquent JavaScript #09# Regular Expressions
索引 Notes js创建正则表达式的两种方式 js正则匹配方式(1) 字符集合 重复匹配 分组(子表达式) js正则匹配方式(2) The Date class 匹配整个字符串 Choice pat ...