[CentOS 8] dnf vs yum
發表於 : 2020-04-06, 14:37
先下結論:DNF可完全取代YUM,CentOS7 請直接 yum install dnf
參考資料(簡體字)
DNF和YUM均是rpm軟件包管理工具,但是DFN替代YUM的說法由來已久,因為YUM包管理工具有一些問題長期得不到解決。
這些問題包括性能低下、內存佔用高以及依賴包解決方案不佳等。
而DNF 在依賴包解決方案中採用了由SUSE 開發的”libsolv”庫,用以提升依賴包解析性能。
YUM 是一個管理RPM 軟件依賴包和軟件庫的前端工具,可以下載RPM 軟件包並安裝,最後刪除下載的軟件包。
至於為什麼要開發一個新的工具來替代YUM,而不是解決YUM 現有的問題,其原因在於想要解決YUM 現有的問題技術上存在很多問題,並且YUM 團隊也不能很快適應更新帶來的改變。
另外,更重要的原因是YUM 的源代碼有大概56000行,修改起來工作量巨大。
DNF (Dandified YUM)
DNF依賴解決方案採用用由SUSE 開發的高性能libsolv 庫
API 接口文檔完備
由C C++ 和Python 編寫
DNF 目前應用在Fedora、RHEL 8、CentOS 8、OEL 8和Mageia 6/7
DNF 支持各類擴展
接口文檔完備,開發新功能容易
同步軟件庫元數據時內存消耗低
如果軟件包更新過程中存在不相關的依賴包,則軟件包不更新
如果允許的軟件庫沒響應,則DNF 會忽略並繼續使用可用軟件庫
DNF 中update 和upgrade 相同
程序包的依賴包是不會更新的
DNF 允許刪除所有內核文件,包括正在使用的內核
如果軟件包更新過程中存在不相關的依賴包,則軟件包不更新
YUM (Yellowdog Updater, Modified)
YUM依賴解決方案為公共API
API 接口文檔較完備
由Python 編寫
YUM 目前應用在RHEL 6/7、CentOS 6/7 和OEL 6/7
YUM 支持Python 擴展
接口文檔不完備,開發新功能困難
同步軟件庫元數據消耗大量內存
軟件包更新時不進行依賴包相關性檢查
如果允許軟件庫沒響應,則YUM 程序會立即中止
YUM 中update 和upgrade 不同
YUM 提供選項來設置這種行為
YUM 禁止刪除正在使用的內核
軟件包更新時不進行依賴包相關性檢查
參考資料(簡體字)
DNF和YUM均是rpm軟件包管理工具,但是DFN替代YUM的說法由來已久,因為YUM包管理工具有一些問題長期得不到解決。
這些問題包括性能低下、內存佔用高以及依賴包解決方案不佳等。
而DNF 在依賴包解決方案中採用了由SUSE 開發的”libsolv”庫,用以提升依賴包解析性能。
YUM 是一個管理RPM 軟件依賴包和軟件庫的前端工具,可以下載RPM 軟件包並安裝,最後刪除下載的軟件包。
至於為什麼要開發一個新的工具來替代YUM,而不是解決YUM 現有的問題,其原因在於想要解決YUM 現有的問題技術上存在很多問題,並且YUM 團隊也不能很快適應更新帶來的改變。
另外,更重要的原因是YUM 的源代碼有大概56000行,修改起來工作量巨大。
DNF (Dandified YUM)
DNF依賴解決方案採用用由SUSE 開發的高性能libsolv 庫
API 接口文檔完備
由C C++ 和Python 編寫
DNF 目前應用在Fedora、RHEL 8、CentOS 8、OEL 8和Mageia 6/7
DNF 支持各類擴展
接口文檔完備,開發新功能容易
同步軟件庫元數據時內存消耗低
如果軟件包更新過程中存在不相關的依賴包,則軟件包不更新
如果允許的軟件庫沒響應,則DNF 會忽略並繼續使用可用軟件庫
DNF 中update 和upgrade 相同
程序包的依賴包是不會更新的
DNF 允許刪除所有內核文件,包括正在使用的內核
如果軟件包更新過程中存在不相關的依賴包,則軟件包不更新
YUM (Yellowdog Updater, Modified)
YUM依賴解決方案為公共API
API 接口文檔較完備
由Python 編寫
YUM 目前應用在RHEL 6/7、CentOS 6/7 和OEL 6/7
YUM 支持Python 擴展
接口文檔不完備,開發新功能困難
同步軟件庫元數據消耗大量內存
軟件包更新時不進行依賴包相關性檢查
如果允許軟件庫沒響應,則YUM 程序會立即中止
YUM 中update 和upgrade 不同
YUM 提供選項來設置這種行為
YUM 禁止刪除正在使用的內核
軟件包更新時不進行依賴包相關性檢查