2009年3月25日星期三

rpm -e specifies multiple packages 的處理辦法

工作中要刪掉xen的包,但是出現兩個,相同的名字,干不掉,如何是好呢?
[root@rac1 VM]# rpm -e xen-libs-3.0.3-64.el5
error: "xen-libs-3.0.3-64.el5" specifies multiple packages
error: "xen-libs-3.0.3-64.el5" specifies multiple packages
man rpm
...
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
[--notriggers] [--repackage] [--test] PACKAGE_NAME ...

[root@rac1 VM]# rpm -e --allmatches --nodeps xen-libs-3.0.3-64.el5
error: Failed dependencies:
libxenstore.so.3.0 is needed by (installed) libvirt-0.3.3-7.0.1.el5.i386
libxenstore.so.3.0()(64bit) is needed by (installed) libvirt-0.3.3-7.0.1.el5.x86_64
libxenstore.so.3.0()(64bit) is needed by (installed) libvirt-python-0.3.3-7.0.1.el5.x86_64
libxenstore.so.3.0()(64bit) is needed by (installed) virt-viewer-0.0.2-2.el5.x86_64
不行,再接再厲
rpm -e --allmatches --nodeps xen-libs-3.0.3-64.el5
ok!

-------------------------------------------------------------------
總覺得上面的方法比較野蠻一點,即使瀉了,心裡也覺得不是很乾淨。
今天我又測試了一下,其實可以這樣:
rpm -qa |grep xen
xen-libs-3.0.3-64.el5
xen-libs-3.0.3-64.el5
kernel-xen-devel-2.6.18-92.el5

你看出現兩個相同的packege,其實,基本上服務器端都是用64bit系統了,所以
他們的package一般是安裝兩個,分別是x86_64, i386, 分別對應64bitOS, 32bit系統,我說的是最大路貨intel/AMD pc架構的server/pc

因此在卸載package的時候在後面添加相應的package就可以了例如:
[root@rac2 ~]# rpm -e libvirt-python-0.3.3-7.0.1.el5.x86_64
[root@rac2 ~]#
[root@rac2 ~]# rpm -e xen-libs-3.0.3-64.el5.x86_64
error: Failed dependencies:
libxenstore.so.3.0()(64bit) is needed by (installed) libvirt-0.3.3-7.0.1.el5.x86_64
[root@rac2 ~]# rpm -e libvirt-0.3.3-7.0.1.el5.x86_64
[root@rac2 ~]# rpm -e xen-libs-3.0.3-64.el5.x86_64
即可了,這裡我把沒用的i386也幹掉了,我覺得是垃圾:)
[root@rac2 ~]# rpm -e xen-libs-3.0.3-64.el5
error: Failed dependencies:
libxenstore.so.3.0 is needed by (installed) libvirt-0.3.3-7.0.1.el5.i386
6
[root@rac2 ~]# rpm -e libvirt-0.3.3-7.0.1.el5.i386
[root@rac2 ~]# rpm -e xen-libs-3.0.3-64.el5
[root@rac2 ~]#


[root@rac2 ~]# rpm -qa |grep xen
kernel-xen-devel-2.6.18-92.el5
[root@rac2 ~]# rpm -qa |grep kernel-xen-devel-2.6.18-92.el5
kernel-xen-devel-2.6.18-92.el5

[root@rac2 ~]# rpm -e kernel-xen-devel-2.6.18-92.el5
[root@rac2 ~]# rpm -qa |grep xen

乾淨了 !
-------------------------------------------------------------
以此類推,估計其他的rpm包也是這個樣子的,記錄之!

没有评论:

发表评论