藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 系統管理


    

藍森林 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 裡定議的. 並一定準.



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com