一次,在安装php程序时,发现有一个插件libxml2未安装,我就随手敲了一个命令,看都没看

 
  
  1. yum remove -y libxml2 

哪知,系统中原本就安装了这个libxml2,结果就杯具了

 
  
  1. [root@test ~]# yum 
  2. -bash: /usr/bin/yum: No such file or directory 

这个粗心的手误倒不至于让整个系统瘫痪,yum 却无法使用了。于是,我试着折腾了一番

1)首先安装这几个东东

 
  
  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 
  2. 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 
  3. rpm -ivh http://mirrors.163.com/centos/5.5/os/x86_64/CentOS/yum-3.2.22-26.el5.centos.noarch.rpm

不过,直接这样安装是不行的,会提示

 
  
  1. warning: yum-3.2.22-26.el5.centos.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e8562897 
  2. error: Failed dependencies: 
  3.         yum-fastestmirror is needed by yum-3.2.22-26.el5.centos.noarch 
  4.         yum-metadata-parser >= 1.1.0 is needed by yum-3.2.22-26.el5.centos.noarch 
  5.  
  6. warning: yum-metadata-parser-1.1.2-3.el5.centos.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897 
  7. error: Failed dependencies: 
  8.         libxml2.so.2()(64bit) is needed by yum-metadata-parser-1.1.2-3.el5.centos.x86_64 
  9.  
  10. warning: yum-metadata-parser-1.1.2-3.el5.centos.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897 
  11. error: Failed dependencies: 
  12.         libxml2.so.2()(64bit) is needed by yum-metadata-parser-1.1.2-3.el5.centos.x86_64 

在其后加入参数 --nodeps后,安装正常

关于rpm --nodeps的解释

 
  
  1. --nodeps                         don't verify package dependencies 

接下来,再次尝试输入yum,结果再次出现莫名错误

 
  
  1. [root@test ~]# yum 
  2. There was a problem importing one of the Python modules 
  3. required to run yum. The error leading to this problem was: 
  4.  
  5.    libxml2.so.2: cannot open shared object file: No such file or directory 
  6.  
  7. Please install a package which provides this module, or 
  8. verify that the module is installed correctly. 
  9.  
  10. It's possible that the above module doesn't match the 
  11. current version of Python, which is: 
  12. 2.4.3 (#1, Nov 11 2010, 13:30:19)  
  13. [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] 
  14.  
  15. If you cannot solve this problem yourself, please go to  
  16. the yum faq at: 
  17.   http://wiki.linux.duke.edu/YumFaq 

2)因为yum调用的是python,运行 Python,试下是否可行

 
  
  1. [root@test ~]# python 
  2. Python 2.4.3 (#1, Nov 11 2010, 13:30:19)  
  3. [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 
  4. Type "help", "copyright", "credits" or "license" for more information. 
  5. >>> import yum 
  6. Traceback (most recent call last): 
  7.   File "<stdin>", line 1, in ? 
  8.   File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 54, in ? 
  9.     import transactioninfo 
  10.   File "/usr/lib/python2.4/site-packages/yum/transactioninfo.py", line 31, in ? 
  11.     from sqlitesack import YumAvailablePackageSqlite 
  12.   File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 26, in ? 
  13.     import yumRepo 
  14.   File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 32, in ? 
  15.     import sqlitecachec 
  16.   File "/usr/lib64/python2.4/site-packages/sqlitecachec.py", line 19, in ? 
  17.     import _sqlitecache 
  18. ImportError: libxml2.so.2: cannot open shared object file: No such file or directory 
  19. >>>  

提示缺少libxml2.so.2,安装一下试试

 
  
  1. 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命令,结果正常了,大喜

 
  
  1. [root@test ~]# yum 
  2. Loaded plugins: fastestmirror 
  3. You need to give some command 
  4. usage: yum [options] COMMAND 
  5.  
  6. List of Commands: 
  7.  
  8. check-update   Check for available package updates 
  9. clean          Remove cached data 
  10. deplist        List a package's dependencies 
  11. downgrade      downgrade a package 
  12. erase          Remove a package or packages from your system 
  13. groupinfo      Display details about a package group 
  14. groupinstall   Install the packages in a group on your system 
  15. grouplist      List available package groups 
  16. groupremove    Remove the packages in a group from your system 
  17. help           Display a helpful usage message 
  18. info           Display details about a package or group of packages 
  19. install        Install a package or packages on your system 
  20. list           List a package or groups of packages 
  21. localinstall   Install a local RPM 
  22. makecache      Generate the metadata cache 
  23. provides       Find what package provides the given value 
  24. reinstall      reinstall a package 
  25. repolist       Display the configured software repositories 
  26. resolvedep     Determine which package provides the given dependency 
  27. search         Search package details for the given string 
  28. shell          Run an interactive yum shell 
  29. update         Update a package or packages on your system 
  30. upgrade        Update packages taking obsoletes into account 
  31.  
  32.  
  33. options: 
  34.   -h, --help            show this help message and exit 
  35.   -t, --tolerant        be tolerant of errors 
  36.   -C                    run entirely from cache, don't update cache 
  37.   -c  [config file]     config file location 
  38.   -R  [minutes]         maximum command wait time 
  39.   -d  [debug level]     debugging output level 
  40.   --showduplicates      show duplicates, in repos, in list/search commands 
  41.   -e  [error level]     error output level 
  42.   -q, --quiet           quiet operation 
  43.   -v, --verbose         verbose operation 
  44.   -y                    answer yes for all questions 
  45.   --version             show Yum version and exit 
  46.   --installroot=[path]  set install root 
  47.   --enablerepo=[repo]   enable one or more repositories (wildcards allowed) 
  48.   --disablerepo=[repo]  disable one or more repositories (wildcards allowed) 
  49.   -x [package], --exclude=[package] 
  50.                         exclude package(s) by name or glob 
  51.   --disableexcludes=[repo] 
  52.                         disable exclude from main, for a repo or for 
  53.                         everything 
  54.   --obsoletes           enable obsoletes processing during updates 
  55.   --noplugins           disable Yum plugins 
  56.   --nogpgcheck          disable gpg signature checking 
  57.   --disableplugin=[plugin] 
  58.                         disable plugins by name 
  59.   --enableplugin=[plugin] 
  60.                         enable plugins by name 
  61.   --skip-broken         skip packages with depsolving problems 
  62.   --color=COLOR         control whether color is used 
  63.  
  64.   Plugin Options: 

3)最后,赶紧更新一下系统吧

 
  
  1. [root@test ~]# yum update 
  2. Loaded plugins: fastestmirror 
  3. Loading mirror speeds from cached hostfile 
  4. Setting up Update Process 
  5. Resolving Dependencies 
  6. There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them. 
  7. The program yum-complete-transaction is found in the yum-utils package. 
  8. --> Running transaction check 
  9. ---> Package libxml2.x86_64 0:2.6.26-2.1.2.8.el5_5.1 set to be updated 
  10. --> Finished Dependency Resolution 
  11.  
  12. Dependencies Resolved 
  13.  
  14. ======================================================================================================================================================================= 
  15.  Package                             Arch                               Version                                               Repository                          Size 
  16. ======================================================================================================================================================================= 
  17. Updating: 
  18.  libxml2                             x86_64                             2.6.26-2.1.2.8.el5_5.1                                update                             807 k 
  19.  
  20. Transaction Summary 
  21. ======================================================================================================================================================================= 
  22. Install       0 Package(s) 
  23. Upgrade       1 Package(s) 
  24.  
  25. Total download size: 807 k 
  26. Is this ok [y/N]: y 
  27. Downloading Packages: 
  28. libxml2-2.6.26-2.1.2.8.el5_5.1.x86_64.rpm                                                                                                       | 807 kB     00:00      
  29. Running rpm_check_debug 
  30. Running Transaction Test 
  31. Finished Transaction Test 
  32. Transaction Test Succeeded 
  33. Running Transaction 
  34.   Updating       : libxml2                                                                                                                                         1/2  
  35.   Cleanup        : libxml2                                                                                                                                         2/2  
  36.  
  37. Updated: 
  38.   libxml2.x86_64 0:2.6.26-2.1.2.8.el5_5.1                                                                                                                               
  39.  
  40. Complete!