YUM已死,DNF永生
這個應該是從Fedora22開始的……
DNF從Yum分支出來,使用
專注於效能的C語言庫hawkey進行依賴關係解析工作,大幅度提升包管理操作效率並降低記憶體消耗,按原先的節奏本應該是Fedora 22實現這一替代方案,隨著DNF 1.0版本的釋出,這一刻終於到來。
這樣的激進更新是不可避免的,主要是由於Yum不能“Python 3 as default”,而DNF支援Python 2和Python3。(Python 3分支自2008年釋出以來積極開發了五年,已經成熟和穩定,而目前仍在維護的Python 2分支不增加新特性,只接受bug和安全修正,它最早的版本是在2000年釋出的。)與此同時,DNF Python API
在Fedora 22 Core中只有DNF而Yum專案正式宣告死亡。
Yum依然可以下載到,也可同樣呼叫軟體包,以及Python API照舊。只是Yum可執行檔案被重新命名為yum-deprecated,以及Yum呼叫的命令列被重新定向至DNF。這樣你就可以在一個系統上同時保有Yum和DNF。
啟動DNF專案的原因是Yum的三個陷阱:
lundocumented API
lbroken dependency solving algorithm
linability to refactor internal functions。
最後被提及的問題是缺少檔案連結。Yum外掛可以在Yum程式碼中使用任何method,這會造成Yum utility因一些細小變化而突然崩潰。
DNF目標是為了避免Yum執行的錯誤。從一開始所有暴露的API都被適當的記錄,且測試幾乎包含了每一次新的提交。這個專案採用了敏捷開發,會提供使用者一些優先順序功能實現。
DNF現在也在極力推進Yum遷移至DNF,並改善使用者體驗。為了實現輕鬆遷移,已經將DNF遷移外掛匯入了包、組和事務元資料,實現從Yum