也許你會驚奇在新安裝的 Fedroa 22中沒有找到 yum 包,也不明白為何在調用 /usr/bin/yum 或使用各種 Yum 插件時會得到警告。嗯,你看到的沒錯,Yum 已經去了~。直白的說, DNF 現在是 Fedora 上默認是包管理器了。
DNF 由 Yum 中分支出來,采用了基於 SAT 的依賴解決算法,目標是在 Fedora 22中取代 Yum。隨著 DNF 1.0 的發布,已經到了取而代之的時候了。Yum 無法適應倡導“默認即
Python 3”理念的 Fedora ,而 DNF 則可以同時支持 Python 2 和 Python 3。 DNF 按照相同的語義邏輯保留了命令行接口的一致。幸運的是,DNF 的 Python API 是完全不同於 Yum 的。這兩個項目之間的所有已知的不兼容都 已經記錄在案了。在 Fedora Core 22 中只有 DNF,官方不會提供 Yum 了。當然,如果你願意,可以自己下載它。這個包仍然可以如同以往一樣調用, Python API 也沒變化,只是 yum 程序的名稱被改名為 yum-depre
cated 了,而且從命令行調用 yum 會被重定向到 DNF。這樣,你就可以在系統上同時維持 Yum 和 DNF 了。
啟動 DNF 項目的原因是由於 Yum 的三大問題:API 缺乏文檔、有問題的依賴解決算法,及無法重構內部函數。這裡提到的最後一個問題,其實和文檔的缺乏有關。Yum 插件使用的各種方法來源於 Yum 的代碼,一旦改變有可能造成 Yum 的突然崩潰!DNF 致力於解決這些 Yum 的問題,從一開始,所有對外的 API 的要做好完備的文檔。在絕大多數新提交中都包含了測試單元。不允許各種奇怪的、亂七八糟的補丁。該項目是通過敏捷開發進行的:對用戶會有較大影響的需求會 得到盡快的實現。
現在,DNF 團隊正在移植各種流行的 Yum 插件到 DNF 上,並改進其用戶體驗。為了更加方便切換到 DNF,我們開發了一個 DNF 移植插件,來將 Yum 中已經安裝的包、分組和事務數據導入到新的 Fedora 包管理器中。趕快轉移到 DNF 吧,希望你喜歡!
譯文:https://linux.cn/article-5463-1.html