yum update 中途被kill故障的解决方案,附yum重装方法

字号+ 编辑: 呆头鹅甲 修订: 呆头鹅甲 来源: 原创 2018-01-04 05:42:30 我要说两句(0)

17年12月份的时候遇到一个古怪的问题,莫名其妙的没法使用yum update这么命令来升级centos主机,具体怎么弄的呢?这里说明一下。

绝大多数情况下, 提高主机内存容量, 是个好办法,内存太小,就容易被强制kill掉

这里说一下另外一种情况, 小编这个可不是抄来的, 自身经验哦...

某一天手抖不小心把安装到一半的进程给停了, 从此之后yum update这个命令就癫痫了,因为当时也考虑到事态不紧急,就丢到一边。到今年一月份了想起来不能老是这样子,得想办法解决,于是乎打开日志看了看,没有任何问题;上谷歌各种搜索,包括segmentfault讨论区看个遍, 都是讨论恢复rpm数据库的, 还是没能解决。

最后一气之下删了yum重新来, 具体步骤如下:

一、卸载yum源

# 终止yum进程
rm -f /var/run/yum.pid
# 删除报错的临时数据
rm -f /var/lib/rpm/__db*
rpm -qa yum-3.4.3-150.el7.centos.noarch
# 卸载组件
rpm -qa | grep yum | xargs rpm -e --nodeps
rpm -qa yum

二、从centos官网上down来yum安装包

1、centos7的话, 下载rpm包

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-3.4.3-150.el7.centos.noarch.rpm 
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-40.el7.noarch.rpm

如果是centos6,应下载以下rpm包

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm

如果这个时候报404错误:ERROR 404: Not Found. 怎么办?这很正常,这帮孙子会把旧版本文件毫不留情地干掉,他们不会管你404。我们只能从这个网页里找其他版本的:

http://mirror.centos.org/centos/7/os/x86_64/Packages/

灵活运用,替代掉上文命令行当中没有找到的包文件。


2、安装

# 先检查放到本地的包对不对
ls yum-*
# 开始安装
rpm -ivh yum-*
rpm -qa yum
# 系统显示yum-版本号.centos.noarch.rpm

弹出error: Failed dependencies:的解决

给一家公司处理一台环境比较烂的主机, 遇到这个问题, 意思就是没有依赖包, 可没有yum的支持, 怎么安装依赖呢? 答案是使用rpm -ivh命令解决, 先不要胡思乱想了, 拿来主义, 到网上找列举出来的包。例如笔者遇到的报错问题就是:

error: Failed dependencies:
	python-urlgrabber >= 3.9.1-10 is needed by yum-3.2.29-81.el6.centos.noarch
	yum-metadata-parser >= 1.1.0 is needed by yum-3.2.29-81.el6.centos.noarch

信息解读: 一个是版本太低, 首先如果你安装了python-urlgrabber, 可能你安到的是3.9.1-9或者更低的版本, 如何判定呢?

先用命令找出含有python字样的rpm安装结果

rpm -qa | grep python

系统返回:

python-libs-2.6.6-52.el6.x86_64
abrt-addon-python-2.0.8-26.el6.centos.x86_64
newt-python-0.52.11-3.el6.x86_64
python-ethtool-0.6-5.el6.x86_64
python-urlgrabber-3.9.1-9.el6.noarch
python-iniparse-0.3.1-2.1.el6.noarch
rpm-python-4.8.0-47.el6.x86_64
python-iwlib-0.1-1.2.el6.x86_64
libxml2-python-2.7.6-17.el6_6.1.x86_64
libproxy-python-0.3.0-10.el6.x86_64
python-pycurl-7.19.0-8.el6.x86_64
python-2.6.6-52.el6.x86_64
dbus-python-0.83.0-6.1.el6.x86_64
libreport-python-2.0.9-21.el6.centos.x86_64

看到有python-urlgrabber字样了吧, 果然是版本不够, 那么你需要先卸载掉它:

rpm -e python-urlgrabber-3.9.1-9.el6.noarch

然后再在搜索引擎上找到这个包, 也可以通过CentOS官方地址来找找看: http://mirror.centos.org/centos/6/os/x86_64/Packages/

之后用wget进来, 再用rpm命令安装这个新包:

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm 
rpm -ivh python-url*

同理, yum-metadata-parser要求1.1.0 以上的, 笔者用rpm -qa | grep yum 没找到这个包, 那么直接在网上down这个包安装即可:

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
rpm -ivh yum-metadata*


三、删除/tmp没用的缓存

进/tmp目录里面检查, 把一些没用的多余的缓存文件清理一下,这个也是很重要的一个步骤。之后reboot服务器。重启完毕后,再用yum update试试看, 是不是解决了?


好了, 方法就说到这里, 笔者按照这个方法解决了困扰了一个月的问题,实测好用。

阅完此文,您的感想如何?
  • 鼓掌

    2

  • 鄙视

    0

  • 开心

    0

  • 愤怒

    0

  • 可怜

    0

1.转来的文章都会标好来源,如对来源资料存疑,请邮件声明;
2.本站标注原创的文章,转发时烦请注明来源;
3.如文章侵犯了您的版权,请通知本站,该文章将在24小时内移除。

相关课文
  • nginx屏蔽指定用户浏览器的方法

  • 用clamscan来给linux主机扫描病毒

  • 修改Linux主机名,改默认localhost.localdomain名称

  • Linux操作sendmail卡住、等待问题的解决

我要说说
网上宾友点评