天天看點

粗心操作導緻yum不可用

一次,在安裝php程式時,發現有一個插件libxml2未安裝,我就随手敲了一個指令,看都沒看

yum remove -y libxml2 

哪知,系統中原本就安裝了這個libxml2,結果就杯具了

[root@test ~]# yum 

-bash: /usr/bin/yum: No such file or directory 

這個粗心的手誤倒不至于讓整個系統癱瘓,yum 卻無法使用了。于是,我試着折騰了一番

1)首先安裝這幾個東東

rpm -ivh http://mirrors.163.com/centos/5.5/os/x86_64/CentOS/yum-fastestmirror-1.1.16-14.el5.centos.1.noarch.rpm 

rpm -ivh http://mirrors.163.com/centos/5.5/os/x86_64/CentOS/yum-metadata-parser-1.1.2-3.el5.centos.x86_64.rpm 

rpm -ivh http://mirrors.163.com/centos/5.5/os/x86_64/CentOS/yum-3.2.22-26.el5.centos.noarch.rpm

不過,直接這樣安裝是不行的,會提示

warning: yum-3.2.22-26.el5.centos.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e8562897 

error: Failed dependencies: 

        yum-fastestmirror is needed by yum-3.2.22-26.el5.centos.noarch 

        yum-metadata-parser >= 1.1.0 is needed by yum-3.2.22-26.el5.centos.noarch 

warning: yum-metadata-parser-1.1.2-3.el5.centos.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897 

        libxml2.so.2()(64bit) is needed by yum-metadata-parser-1.1.2-3.el5.centos.x86_64 

在其後加入參數 --nodeps後,安裝正常

關于rpm --nodeps的解釋

--nodeps                         don't verify package dependencies 

接下來,再次嘗試輸入yum,結果再次出現莫名錯誤

There was a problem importing one of the Python modules 

required to run yum. The error leading to this problem was: 

   libxml2.so.2: cannot open shared object file: No such file or directory 

Please install a package which provides this module, or 

verify that the module is installed correctly. 

It's possible that the above module doesn't match the 

current version of Python, which is: 

2.4.3 (#1, Nov 11 2010, 13:30:19)  

[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] 

If you cannot solve this problem yourself, please go to  

the yum faq at: 

  http://wiki.linux.duke.edu/YumFaq 

2)因為yum調用的是python,運作 Python,試下是否可行

[root@test ~]# python 

Python 2.4.3 (#1, Nov 11 2010, 13:30:19)  

[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 

Type "help", "copyright", "credits" or "license" for more information. 

>>> import yum 

Traceback (most recent call last): 

  File "<stdin>", line 1, in ? 

  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 54, in ? 

    import transactioninfo 

  File "/usr/lib/python2.4/site-packages/yum/transactioninfo.py", line 31, in ? 

    from sqlitesack import YumAvailablePackageSqlite 

  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 26, in ? 

    import yumRepo 

  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 32, in ? 

    import sqlitecachec 

  File "/usr/lib64/python2.4/site-packages/sqlitecachec.py", line 19, in ? 

    import _sqlitecache 

ImportError: libxml2.so.2: cannot open shared object file: No such file or directory 

>>>  

提示缺少libxml2.so.2,安裝一下試試

rpm -ivh http://mirrors.163.com/centos/5.5/os/x86_64/CentOS/libxml2-2.6.26-2.1.2.8.x86_64.rpm 

再次測試運作下yum指令,結果正常了,大喜

[root@test ~]# yum 

Loaded plugins: fastestmirror 

You need to give some command 

usage: yum [options] COMMAND 

List of Commands: 

check-update   Check for available package updates 

clean          Remove cached data 

deplist        List a package's dependencies 

downgrade      downgrade a package 

erase          Remove a package or packages from your system 

groupinfo      Display details about a package group 

groupinstall   Install the packages in a group on your system 

grouplist      List available package groups 

groupremove    Remove the packages in a group from your system 

help           Display a helpful usage message 

info           Display details about a package or group of packages 

install        Install a package or packages on your system 

list           List a package or groups of packages 

localinstall   Install a local RPM 

makecache      Generate the metadata cache 

provides       Find what package provides the given value 

reinstall      reinstall a package 

repolist       Display the configured software repositories 

resolvedep     Determine which package provides the given dependency 

search         Search package details for the given string 

shell          Run an interactive yum shell 

update         Update a package or packages on your system 

upgrade        Update packages taking obsoletes into account 

options: 

  -h, --help            show this help message and exit 

  -t, --tolerant        be tolerant of errors 

  -C                    run entirely from cache, don't update cache 

  -c  [config file]     config file location 

  -R  [minutes]         maximum command wait time 

  -d  [debug level]     debugging output level 

  --showduplicates      show duplicates, in repos, in list/search commands 

  -e  [error level]     error output level 

  -q, --quiet           quiet operation 

  -v, --verbose         verbose operation 

  -y                    answer yes for all questions 

  --version             show Yum version and exit 

  --installroot=[path]  set install root 

  --enablerepo=[repo]   enable one or more repositories (wildcards allowed) 

  --disablerepo=[repo]  disable one or more repositories (wildcards allowed) 

  -x [package], --exclude=[package] 

                        exclude package(s) by name or glob 

  --disableexcludes=[repo] 

                        disable exclude from main, for a repo or for 

                        everything 

  --obsoletes           enable obsoletes processing during updates 

  --noplugins           disable Yum plugins 

  --nogpgcheck          disable gpg signature checking 

  --disableplugin=[plugin] 

                        disable plugins by name 

  --enableplugin=[plugin] 

                        enable plugins by name 

  --skip-broken         skip packages with depsolving problems 

  --color=COLOR         control whether color is used 

  Plugin Options: 

3)最後,趕緊更新一下系統吧

[root@test ~]# yum update 

Loading mirror speeds from cached hostfile 

Setting up Update Process 

Resolving Dependencies 

There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them. 

The program yum-complete-transaction is found in the yum-utils package. 

--> Running transaction check 

---> Package libxml2.x86_64 0:2.6.26-2.1.2.8.el5_5.1 set to be updated 

--> Finished Dependency Resolution 

Dependencies Resolved 

======================================================================================================================================================================= 

 Package                             Arch                               Version                                               Repository                          Size 

Updating: 

 libxml2                             x86_64                             2.6.26-2.1.2.8.el5_5.1                                update                             807 k 

Transaction Summary 

Install       0 Package(s) 

Upgrade       1 Package(s) 

Total download size: 807 k 

Is this ok [y/N]: y 

Downloading Packages: 

libxml2-2.6.26-2.1.2.8.el5_5.1.x86_64.rpm                                                                                                       | 807 kB     00:00      

Running rpm_check_debug 

Running Transaction Test 

Finished Transaction Test 

Transaction Test Succeeded 

Running Transaction 

  Updating       : libxml2                                                                                                                                         1/2  

  Cleanup        : libxml2                                                                                                                                         2/2  

Updated: 

  libxml2.x86_64 0:2.6.26-2.1.2.8.el5_5.1                                                                                                                               

Complete! 

本文轉自dongfang_09859 51CTO部落格,原文連結:http://blog.51cto.com/hellosa/503672,如需轉載請自行聯系原作者