2014-06-17 16 views
0

如何刪除配方中的rpm包,當它可能有一些與之相關的依賴關係?如何刪除與大廚以及相關性的rpm包?

我的使用情況是,我是一個測試儀,以及使用廚師安裝/升級/降級我的測試環境。爲了保證我有升級時一個清潔的環境,我刪除利用安裝的應用程序:

rpm_package rpmName do 
    action[:remove] 
end 

但是,有時候我的環境中也安裝一個額外的「插件」轉是依賴於主要的應用程序的RPM。當我運行廚師和它運行中刪除主應用的程序包命令,廚師失敗,因爲依賴問題:

Chef::Exceptions::Exec 
---------------------- 
rpm -e <main app> returned 1, expected 0 

和服務器上:

[[email protected] ~]# rpm -e <main app> 
error: Failed dependencies: 
<main app> >= X.x.x is needed by (installed) <plugin rpm> 

我看着廚師文檔的rpm_package,但沒有遇到任何可以幫助我的東西。有沒有人有什麼建議?

回答

1

是否有使用yum的廚師規則(或任何他們被稱爲)?要求yum移除另一個軟件包依賴項的軟件包也會要求刪除相關軟件包,並且只有在被告知不需要時纔會失敗。

+0

廚師使用食譜(可能就是你指的是),是的,有是一個百勝資源。但是,這需要一些額外的努力來維持yum repo的某個地方,這是我們沒有時間的項目,因此我們爲什麼要使用RPM。 – bbbco

+1

@bbbco你不需要yum repo來使用'yum remove'。 –

+0

啊,我沒有意識到這一點。我試過了,它似乎工作。 'yum刪除'它是! – bbbco

1

不幸的是,這是RPM的副產品,而不是廚師。您需要查詢RPM以確定哪些軟件包將其用作依賴項並首先將其卸載。這就像逆向依賴管理。

+0

好吧,任何想法如何拉動RPM,然後使用廚師代碼迭代他們? – bbbco

+0

http://www.cyberciti.biz/faq/how-do-i-find-what-dependencies-a-rpm-file-has/ – sethvargo