Սկսվել է DNF 5 փաթեթի կառավարչի մշակումը և PackageKit-ի փոխարինումը

Դանիել Մախ Red Hat-ից сообщил DNF 5 փաթեթների կառավարչի մշակման սկզբի մասին, որում Python-ում ներդրված DNF տրամաբանությունը կտեղափոխվի C++-ով գրված libdnf գրադարան։ DNF 5-ը նախատեսվում է սկսել փորձարկումը հունիսին՝ Fedora 33-ի մշակման ժամանակ, որից հետո այն կավելացվի Rawhide պահեստին 2020 թվականի հոկտեմբերին և կփոխարինի DNF 2021-ին 4 թվականի փետրվարին: DNF 4 մասնաճյուղի սպասարկումը կշարունակվի այնպես, ինչպես կա: օգտագործվում է Red Hat Enterprise Linux 8-ում:

Նշվում է, որ նախագիծը հասել է մի վիճակի, երբ գրեթե անհնար է շարունակել կոդերի մշակումը առանց API/ABI մակարդակում համատեղելիությունը խախտելու։ Սա հիմնականում պայմանավորված է կորուստ PackageKit-ի արդիականությունը և libdnf-ի ստեղծման անհնարինությունը՝ առանց «libhif» API-ն փոխելու: Միևնույն ժամանակ, չնայած API-ն փոխելու մտադրությանը, հիմնական առաջնահերթությունն է համարվում հրամանի տողի ինտերֆեյսի և API-ի մակարդակով հետին համատեղելիության պահպանումը:

DNF-ում Python API-ի աջակցությունը կպահպանվի, սակայն Python-ում գրված բիզնես տրամաբանությունը կտեղափոխվի libdnf (C++) գրադարան, որը կապահովի փաթեթների կառավարչի նույնական աշխատանքը բաշխման մեջ։ Զարգացումը կենտրոնանալու է C++ API-ի շուրջ, և Python API-ն ավտոմատ կերպով կստեղծվի դրա հիման վրա փաթաթման տեսքով:
Bindings for Go, Perl and
Ռուբին. C++ API-ի կայունացումից հետո դրա հիման վրա կպատրաստվի C API, որին կփոխանցվի rpm-ostree: Հոքի Python API-ն կհեռացվի և կփոխարինվի դրանով libdnf Python API.

DNF-ի հիմնական ֆունկցիոնալությունը կպահպանվի: Խոշոր թեստային փաթեթի պատճառով (մոտ 1400 թեստ), ակնկալվում է, որ API-ի վերամշակումը չի ազդի վերջնական օգտագործողների հրամանի տողի ինտերֆեյսի վրա: Փաստարկների վերլուծությունը և արդյունքը կարող են փոքր-ինչ փոխվել, բայց այդ փոփոխությունները լավ փաստագրված կլինեն: Մերկացված տարբերակով microdnf, որն օգտագործվում է բեռնարկղերում, նախատեսվում է իրականացնել DNF հնարավորությունների ենթաբազմություն, ֆունկցիոնալության լիարժեք հավասարության հասնելը չի ​​դիտարկվում:

Փոխարենը Փաթեթների հավաքածու Կստեղծվի նոր DBus ծառայություն, որն ապահովում է ինտերֆեյս փաթեթների կառավարման և գրաֆիկական հավելվածների թարմացումների համար: Այս ծառայությունը նախատեսվում է մշակել զրոյից, ուստի դրա ստեղծումը կարող է շատ ժամանակ պահանջել։ PackageKit-ը վերջերս չի մշակվել և 2014 թվականից գտնվում է սպասարկման ռեժիմում՝ համապատասխանության կորստի պատճառով: Snaps և Flatpak համակարգերի առաջխաղացումով բաշխումները կորցնում են հետաքրքրությունը PackageKit-ի նկատմամբ, օրինակ՝ այն այլևս հասանելի չէ կառուցապատումներում: Fedora Silver Blue. Փաթեթների կառավարման համար աբստրակցիոն շերտը հիմնականում տրամադրվում է բնիկ GNOME-ի և KDE հավելվածների կառավարման կենտրոնների կողմից, որոնք թույլ են տալիս տեղադրել flatpak փաթեթներ անհատական ​​օգտագործողի մակարդակով: Տեղադրված փաթեթների ցուցակ ստանալու միասնական համակարգի API-ն այնքան էլ օգտակար չէ, ինչպես նախկինում։

Source: opennet.ru

Добавить комментарий