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

字號+ 編輯: 种花家 修訂: 种花家 來源: 原创 2023-09-12 我要說兩句(1)

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.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • 防止退出linux終耑退出之後導致的nohup進程強制退出

  • Linux系統下word文档轉成pdf的辦法

  • ubuntu和debian安裝nginx或者tengine報錯, 找不到pcre依賴庫的解決辦法

  • 常見的web中間件請求返回狀態碼

我要說說
網上賓友點評
1 樓 IP 114.254.***.129 的嘉賓 说道 : 很久前
别那么抠, 买大一点内存的主机