Kev txhim kho ntawm DNF 5 tus thawj tswj pob thiab hloov PackageKit tau pib

Daniel Mach los ntawm Red Hat qhia hais txog qhov pib ntawm kev txhim kho ntawm DNF 5 tus thawj tswj pob, uas DNF logic siv hauv Python yuav raug xa mus rau lub tsev qiv ntawv libdnf sau hauv C ++. DNF 5 tau npaj yuav pib sim thaum Lub Rau Hli thaum lub sijhawm txhim kho Fedora 33, tom qab ntawd nws yuav ntxiv rau Rawhide repository thaum Lub Kaum Hli 2020, thiab yuav hloov DNF 2021 thaum Lub Ob Hlis 4. Kev saib xyuas ntawm DNF 4 ceg yuav txuas ntxiv raws li nws yog. siv hauv Red Hat Enterprise Linux 8.

Nws tau raug sau tseg tias qhov project tau mus txog lub xeev uas nws yuav luag tsis tuaj yeem txuas ntxiv tsim cov cai yam tsis muaj kev sib raug zoo ntawm API / ABI qib. Qhov no feem ntau yog vim poob Qhov cuam tshuam ntawm PackageKit thiab qhov ua tsis tau ntawm kev txhim kho libdnf yam tsis hloov "libhif" API. Nyob rau tib lub sijhawm, txawm tias lub hom phiaj los hloov API, tswj kev rov qab sib raug zoo ntawm qib ntawm cov kab hais kom ua interface thiab API tau hais tias yog qhov tseem ceeb tshaj plaws.

Kev them nyiaj yug rau Python API hauv DNF yuav raug khaws cia, tab sis kev lag luam logic sau hauv Python yuav raug xa mus rau lub tsev qiv ntawv libdnf (C ++), uas yuav ua kom muaj kev ua haujlwm zoo ib yam ntawm tus thawj tswj pob hauv kev faib khoom. Txoj kev loj hlob yuav yog nyob ib puag ncig C ++ API, thiab Python API yuav raug txiav tawm hauv daim ntawv wrapper raws li nws.
Kev khi rau Go, Perl thiab
Ruby. Tom qab C ++ API tau ruaj khov, C API yuav raug npaj los ntawm nws lub hauv paus, uas rpm-ostree yuav raug xa mus. Hawkey Python API yuav raug tshem tawm thiab hloov nrog libdnf Python API.

Lub luag haujlwm tseem ceeb ntawm DNF yuav khaws cia. Vim qhov kev sim loj loj (txog 1400 qhov kev sim), nws xav tias API rov ua haujlwm yuav tsis cuam tshuam rau cov kab lus hais kom ua rau cov neeg siv kawg. Kev sib cav parsing thiab tso zis tej zaum yuav hloov me ntsis, tab sis cov kev hloov no yuav raug sau tseg zoo. Nyob rau hauv ib tug stripped down version microdnf ua, siv nyob rau hauv ntim, nws yog npaj los siv ib tug subset ntawm DNF muaj peev xwm; ua kom tiav tag nrho parity nyob rau hauv functionality yog tsis xam.

Hloov chaw PobKit Ib qho kev pabcuam DBus tshiab yuav raug tsim uas muab kev sib txuas rau kev tswj cov pob khoom thiab hloov tshiab rau daim ntawv thov graphical. Qhov kev pabcuam no tau npaj los tsim los ntawm kos, yog li nws cov kev tsim yuav xav tau ntau lub sijhawm. PackageKit tsis tau tsim tawm tsis ntev los no thiab tau nyob rau hauv kev saib xyuas txij li xyoo 2014 vim tsis muaj qhov cuam tshuam. Nrog rau kev nce qib ntawm Snaps thiab Flatpak systems, kev faib khoom poob qis hauv PackageKit, piv txwv li, nws tsis muaj nyob hauv kev tsim Fedora Silver Xiav. Cov txheej txheem abstraction rau kev tswj cov pob khoom feem ntau yog muab los ntawm haiv neeg GNOME thiab KDE Application Control Centers, uas tso cai rau kev teeb tsa cov pob flatpak ntawm tus neeg siv theem. Cov kev sib koom ua ke API kom tau txais cov npe ntawm cov pob teeb tsa tsis muaj txiaj ntsig zoo li ua ntej.

Tau qhov twg los: opennet.ru

Ntxiv ib saib