你想知道為什么Yum包沒(méi)有安裝到Fedora 22中?為什么當(dāng)你調(diào)用/usr/bin/yum等文件或任何yum-util插件時(shí)有警告?你應(yīng)該看下右側(cè)界面,Yum已經(jīng)被DNF取代,DNF成為了Fedora新默認(rèn)的包管理器。
DNF從Yum分支出來(lái),使用專(zhuān)注于性能的C語(yǔ)言庫(kù)hawkey進(jìn)行依賴(lài)關(guān)系解析工作,大幅度提升包管理操作效率并降低內(nèi)存消耗,按原先的節(jié)奏本應(yīng)該是Fedora 22實(shí)現(xiàn)這一替代方案。但隨著DNF 1.0版本的發(fā)布,這一刻終于到來(lái)。
這樣的激進(jìn)更新是不可避免的,主要是由于Yum不能“Python 3 as default”,而DNF支持Python 2和Python3。(Python 3分支自2008年發(fā)布以來(lái)積極開(kāi)發(fā)了五年,已經(jīng)成熟和穩(wěn)定,而目前仍在維護(hù)的Python 2分支不增加新特性,只接受bug和安全修正,它早的版本是在2000年發(fā)布的。)與此同時(shí),DNF Python API和Yum是完全不同的,這兩個(gè)項(xiàng)目中所有已知的不兼容問(wèn)題也都被記錄。
在Fedora 22 Core中只有DNF而Yum項(xiàng)目正式宣告死亡。
Yum依然可以下載到,也可同樣調(diào)用軟件包,以及Python API照舊。只是Yum可執(zhí)行文件被重新命名為yum-deprecated,以及Yum調(diào)用的命令行被重新定向至DNF。這樣你就可以在一個(gè)系統(tǒng)上同時(shí)保有Yum和DNF。
啟動(dòng)DNF項(xiàng)目的原因是Yum的三個(gè)陷阱:undocumented API、broken dependency solving algorithm和inability to refactor internal functions。后被提及的問(wèn)題是缺少文件鏈接。Yum插件可以在Yum代碼中使用任何method,這會(huì)造成Yum utility因一些細(xì)小變化而突然崩潰。
DNF目標(biāo)是為了避免Yum執(zhí)行的錯(cuò)誤。從一開(kāi)始所有暴露的API都被適當(dāng)?shù)挠涗?,且測(cè)試幾乎包含了每一次新的提交。這個(gè)項(xiàng)目采用了敏捷開(kāi)發(fā),會(huì)提供用戶一些優(yōu)先級(jí)功能實(shí)現(xiàn)。
DNF現(xiàn)在也在極力推進(jìn)Yum遷移至DNF,并改善用戶體驗(yàn)。為了實(shí)現(xiàn)輕松遷移,已經(jīng)將DNF遷移插件導(dǎo)入了包、組和事務(wù)元數(shù)據(jù),實(shí)現(xiàn)從Yum至新的Fedora包管理器。
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個(gè)人觀點(diǎn), 并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個(gè)個(gè)人學(xué)習(xí)交流的平臺(tái),網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對(duì)作者和來(lái)源進(jìn)行了通告,但是能力有限或疏忽,造成漏登,請(qǐng)及時(shí)聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對(duì)此聲明的最終解釋權(quán)。