|
藍森林 http://www.lslnet.com 2006年8月18日 15:18
如何安全的刪除兩個相互依存的 RPM 軟件包?
在 AS 4.0 中:
# rpm -e php
error: Failed dependencies:
php = 4.3.9-3.1 is needed by (installed) php-pear-4.3.9-3.1.i386
# rpm -e php-pear
error: Failed dependencies:
php-pear is needed by (installed) php-4.3.9-3.1.i386
想刪除php,卻刪除不了,php-pear 與 php 兩個包相互依存了, 我不想使用 rpm -e --nodeps 強制卸載.
請問,有什麼辦法可以安全的刪除兩個相互依存的 RPM 軟件包? 謝謝! |
如何安全的刪除兩個相互依存的 RPM 軟件包?
rpm -e php-pear-4.3.9-3.1.i386 --force
rpm -e php-4.3.9-3.1.i386 |
如何安全的刪除兩個相互依存的 RPM 軟件包?
加 force |
如何安全的刪除兩個相互依存的 RPM 軟件包?
這好像也是強制性刪除呀.
--force 與 --nodeps 具體有什麼不同的地方呢?
謝謝了. |
如何安全的刪除兩個相互依存的 RPM 軟件包?
有下面的提示呀!
# rpm -e php-pear-4.3.9-3.1.i386 --force
rpm: only installation, upgrading, rmsource and rmspec may be forced |
如何安全的刪除兩個相互依存的 RPM 軟件包?
說錯了,應該是--nodeps參數 |
如何安全的刪除兩個相互依存的 RPM 軟件包?
那還真是必須使用 --nodeps 參數了.
還是很謝謝你. |
如何安全的刪除兩個相互依存的 RPM 軟件包?
--force一般用於安裝,有「強制覆蓋安裝」的意思
而--nodeps是忽略依賴
RPM有的時候的確很變態,記得有次我安裝一個軟件的時候,兩個RPM互相依賴,沒辦法,才用了--nodeps,造成這樣的原因不明 |
如何安全的刪除兩個相互依存的 RPM 軟件包?
若 A B 互為依存, try:
rpm -i A B
rpm -e A B |
如何安全的刪除兩個相互依存的 RPM 軟件包?
慚愧,剛知道rpm還可以這樣用,從來沒有試過呢……
如果強行用--nodeps安裝,會影響正常使用嘛? |
如何安全的刪除兩個相互依存的 RPM 軟件包?
呵.... 要看依存性有沒破壞了, 然後再看是否被依存的其它 program 調用到差異的部份.
從 man rpm 來看:
[code] --force
Same as using --replacepkgs, --replacefiles, and
--oldpackage.
--replacepkgs
Install the packages even if some of them are
already installed on this system.
--replacefiles
Install the packages even if they replace files
from other, already installed, packages.
--oldpackage
Allow an upgrade to replace a newer package with an
older one.
[/code] |
如何安全的刪除兩個相互依存的 RPM 軟件包?
如果僅僅2個RPM包相互依賴,分別用--nodeps參數安裝是否會造成問題
我又如何才能知道「要看依存性有沒破壞了」呢? |
如何安全的刪除兩個相互依存的 RPM 軟件包?
rpm --nodeps php.rpm |
如何安全的刪除兩個相互依存的 RPM 軟件包?
| 如何安全的刪除兩個相互依存的 RPM 軟件包?
學習... |
如何安全的刪除兩個相互依存的 RPM 軟件包?
又學了一招,呵呵 |
如何安全的刪除兩個相互依存的 RPM 軟件包?
-->
這就要挖裡面的 source code 才知了.
比方 A 需要用到 B , 而 B 裡面分別有 C 於 D 兩個元件.
今天你將 B 做升級, 可能會說不行, 因為 A 要用到 B.
然後你用 --nodeps 忽略這個 checking, 硬要將 B 升上來.
又假設改升級只會升級 C 而 D 保持不變.
如此, 當 A->;B(C) 調用時, 可能有問題.
但 A->;B(D) 可能沒問題. |
如何安全的刪除兩個相互依存的 RPM 軟件包?
若有機會的話, 去看看 rpm 的如下三個選項的差別將更有幫助理解:
-i
-U
-F |
如何安全的刪除兩個相互依存的 RPM 軟件包?
-->
現在就假設A用到B,B用到A,而C用到A/B
安裝C之前要有A/B,但安裝A需要B,安裝B需要A,於是用--nodeps安裝了A和B,之後用正常的方法安裝C
這樣的現象我在安裝KDE的時候遇到過,但不影響使用,但不知有沒有潛在隱患 |
如何安全的刪除兩個相互依存的 RPM 軟件包?
若 version 上是一致的, 那就行.
只有看 source 最準.
因為 rpm 的依存, 是在 spec 裡定議的. 並一定準. |
| |