
我的問題
我想手工建立一個軟體。所以我使用安裝了它的所有依賴項dnf install <a> <b> <c>
。
然後我不再需要那個軟體了,所以我也想卸載它的所有依賴項。但yum remove <a> <b> <c>
會刪除所有套件,即使另一個已安裝的套件仍然依賴這些套件之一(<b>
例如)。
我嘗試過的
- 我閱讀了
man dnf
,但找不到合適的命令。
我的問題
最簡單的方法是什麼:
- 找出其他包仍需要哪些包
<a>
,<b>
和。<c>
dnf remove
我不再需要的軟體包清單中的所有軟體包(<a>
、<b>
和<c>
),但不要從 point 中刪除這些軟體包(1.)
。
任何想法?
感謝您的協助。如果有任何不清楚的地方,請評論,我會添加更多細節。
答案1
對於 Fedora,您可以使用包清理,例如使用--leaves
選項。
--leaves 列出本地 RPM 資料庫中的葉節點。葉節點是不被任何其他 RPM 依賴的 RPM。
答案2
對於 Yum,您可以使用package-cleanup
來自 的命令yum-utils
。但是,對於 DNF,它是作為命令內建的dnf autoremove
。從文件:
dnf [options] autoremove
從系統中刪除最初作為使用者安裝的軟體包的依賴項安裝但任何此類軟體包不再需要的所有「葉」軟體包。
請注意,您還可以dnf list
在運行 automremove 本身之前使用該命令查看將刪除哪些包,方法是
dnf list autoremove
另請注意,DNF 在行為上還有另一個差異,這應該可以幫助您解決類似的情況(但不是您的具體情況)。如果您的主要軟體是由 DNF 安裝的(而不是在 DNF 之外手動安裝),並且您使用了dnf remove
,則預設設定(與yum 不同)也會刪除僅為該軟體包添加的任何依賴項,而這些依賴項不用於還要別的嗎。