1. 程式人生 > >Fedora的包管理器已從Yum切換到DNF

Fedora的包管理器已從Yum切換到DNF

http://img.my.csdn.net/uploads/201505/18/1431929309_5128.jpg

你想知道為什麼Yum包沒有安裝到Fedora 22中?為什麼當你呼叫/usr/bin/yum等檔案或任何yum-util外掛時有警告?你應該看下右側介面,Yum已經被DNF取代,DNF成為了Fedora新預設的包管理器。

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和Yum是完全不同的,這兩個專案中所有已知的不相容問題也都被記錄。

在Fedora 22 Core中只有DNF而Yum專案正式宣告死亡。

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

啟動DNF專案的原因是Yum的三個陷阱:undocumented API、broken dependency solving algorithm和inability to refactor internal functions。最後被提及的問題是缺少檔案連結。Yum外掛可以在Yum程式碼中使用任何method,這會造成Yum utility因一些細小變化而突然崩潰。

DNF目標是為了避免Yum執行的錯誤。從一開始所有暴露的API都被適當的記錄,且測試幾乎包含了每一次新的提交。這個專案採用了敏捷開發,會提供使用者一些優先順序功能實現。

DNF現在也在極力推進Yum遷移至DNF,並改善使用者體驗。為了實現輕鬆遷移,已經將DNF遷移外掛匯入了包、組和事務元資料,實現從Yum至新的Fedora包管理器。

                                                By DNF團隊Jan Silhan

極客頭條正式開通了微信公眾號,在微信搜尋“csdn_geek”或掃描下方的二維碼即可關注。

http://img.my.csdn.net/uploads/201504/14/1428999730_5047.jpg