1. 程式人生 > >YUM已死,DNF永生

YUM已死,DNF永生

這個應該是從Fedora22開始的……

DNFYum分支出來,使用

專注於效能的C語言庫hawkey進行依賴關係解析工作,大幅度提升包管理操作效率並降低記憶體消耗,按原先的節奏本應該是Fedora 22實現這一替代方案,隨著DNF 1.0版本的釋出,這一刻終於到來。

這樣的激進更新是不可避免的,主要是由於Yum不能“Python 3 as default”,而DNF支援Python 2Python3。(Python 3分支自2008年釋出以來積極開發了五年,已經成熟和穩定,而目前仍在維護的Python 2分支不增加新特性,只接受bug和安全修正,它最早的版本是在2000年釋出的。)與此同時,DNF Python API

Yum是完全不同的,這兩個專案中所有已知的不相容問題也都被記錄。

Fedora 22 Core中只有DNFYum專案正式宣告死亡

Yum依然可以下載到,也可同樣呼叫軟體包,以及Python API照舊。只是Yum可執行檔案被重新命名為yum-deprecated,以及Yum呼叫的命令列被重新定向至DNF。這樣你就可以在一個系統上同時保有YumDNF

啟動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

至新的Fedora包管理器。