แž€แžถแžšแžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž€แž‰แŸ’แž…แž”แŸ‹ DNF 5 แž“แžทแž„แž€แžถแžšแž‡แŸ†แž“แžฝแžŸ PackageKit แž”แžถแž“แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž แžพแž™แŸ”

Daniel Mach แž˜แž€แž–แžธ Red Hat แž”แžถแž“แžšแžถแž™แž€แžถแžšแžŽแŸ แžขแŸ†แž–แžธแž€แžถแžšแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž“แŸƒแž€แžถแžšแžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž€แž‰แŸ’แž…แž”แŸ‹ DNF 5 แžŠแŸ‚แž›แž€แŸ’แž“แžปแž„แž“แŸ„แŸ‡แžแž€แŸ’แž€แžœแžทแž‡แŸ’แž‡แžถ DNF แžŠแŸ‚แž›แž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแž“แŸ…แž€แŸ’แž“แžปแž„ Python แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แž‘แŸแžšแž‘แŸ…แž”แžŽแŸ’แžŽแžถแž›แŸแž™ libdnf แžŠแŸ‚แž›แžŸแžšแžŸแŸแžšแž€แŸ’แž“แžปแž„ C ++ แŸ” DNF 5 แž‚แŸ’แžšแŸ„แž„แž“แžนแž„แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แžŸแžถแž€แž›แŸ’แž”แž„แž“แŸ…แžแŸ‚แž˜แžทแžแžปแž“แžถ แž€แŸ†แžกแžปแž„แž–แŸแž›แžขแž—แžทแžœแžŒแŸ’แž Fedora 33 แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แžœแžถแž“แžนแž„แž”แž‰แŸ’แž…แžผแž›แž‘แŸ…แž€แŸ’แž“แžปแž„แžƒแŸ’แž›แžถแŸ†แž„ Rawhide แž“แŸ…แžแŸ‚แžแžปแž›แžถ แž†แŸ’แž“แžถแŸ† 2020 แž แžพแž™แž“แžนแž„แž‡แŸ†แž“แžฝแžŸ DNF 2021 แž“แŸ…แžแŸ‚แž€แžปแž˜แŸ’แž—แŸˆ แž†แŸ’แž“แžถแŸ† 4แŸ” แž€แžถแžšแžแŸ‚แž‘แžถแŸ†แžŸแžถแžแžถ DNF 4 แž“แžนแž„แž”แž“แŸ’แžแžŠแžผแž…แžŠแŸ‚แž›แžœแžถแž€แŸ†แž–แžปแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแŸ” แž”แŸ’แžšแžพแž€แŸ’แž“แžปแž„ Red Hat Enterprise Linux 8.

แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžแžถแž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡แž”แžถแž“แžˆแžถแž“แžŠแž›แŸ‹แžŸแŸ’แžแžถแž“แž—แžถแž–แž˜แžฝแž™แžŠแŸ‚แž›แžœแžถแžŸแŸ’แž‘แžพแžšแžแŸ‚แž˜แžทแž“แžขแžถแž…แž‘แŸ…แžšแžฝแž…แž‘แŸแž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž“แŸ’แžแžขแž—แžทแžœแžŒแŸ’แžแž€แžผแžŠแžŠแŸ„แž™แž˜แžทแž“แž”แŸ†แž”แŸ‚แž€แž—แžถแž–แž†แž”แž‚แŸ’แž“แžถแž“แŸ…แž€แž˜แŸ’แžšแžทแž API/ABI แŸ” แž“แŸแŸ‡แž‡แžถแž…แž˜แŸ’แž”แž„แžŠแŸ„แž™แžŸแžถแžšแžแŸ‚ แž€แžถแžšแž”แžถแžแŸ‹แž”แž„แŸ‹ แž—แžถแž–แž–แžถแž€แŸ‹แž–แŸแž“แŸ’แž’แž“แŸƒ PackageKit แž“แžทแž„แž—แžถแž–แž˜แžทแž“แžขแžถแž…แž‘แŸ…แžšแžฝแž…แž“แŸƒแž€แžถแžšแžขแž—แžทแžœแžŒแŸ’แžแž“แŸ libdnf แžŠแŸ„แž™แž˜แžทแž“แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžš "libhif" API แŸ” แž€แŸ’แž“แžปแž„แž–แŸแž›แž‡แžถแž˜แžฝแž™แž‚แŸ’แž“แžถแž“แŸแŸ‡ แž‘แŸ„แŸ‡แž”แžธแž‡แžถแž˜แžถแž“แž”แŸ†แžŽแž„แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžš API แž€แŸแžŠแŸ„แž™ แž€แžถแžšแžšแž€แŸ’แžŸแžถแž—แžถแž–แž†แž”แž‚แŸ’แž“แžถแžแž™แž€แŸ’แžšแŸ„แž™แž“แŸ…แž€แž˜แŸ’แžšแžทแžแž“แŸƒแž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แž”แž“แŸ’แž‘แžถแžแŸ‹แž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ แž“แžทแž„ API แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแž“แžทแž™แžถแž™แžแžถแž‡แžถแžขแžถแž‘แžทแž—แžถแž–แž…แž˜แŸ’แž”แž„แŸ”

แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹ Python API แž“แŸ…แž€แŸ’แž“แžปแž„ DNF แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แžšแž€แŸ’แžŸแžถแž‘แžปแž€ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžแž€แŸ’แž€แžœแžทแž‡แŸ’แž‡แžถแžขแžถแž‡แžธแžœแž€แž˜แŸ’แž˜แžŠแŸ‚แž›แžŸแžšแžŸแŸแžšแž€แŸ’แž“แžปแž„ Python แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แž‘แŸแžšแž‘แŸ…แž”แžŽแŸ’แžŽแžถแž›แŸแž™ libdnf (C++) แžŠแŸ‚แž›แž“แžนแž„แž’แžถแž“แžถแž”แžถแž“แž“แžผแžœแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžŠแžผแž…แž‚แŸ’แž“แžถแž”แŸแŸ‡แž”แžทแž‘แžšแž”แžŸแŸ‹แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž€แž‰แŸ’แž…แž”แŸ‹แž€แŸ’แž“แžปแž„แž€แžถแžšแž…แŸ‚แž€แž…แžถแž™แŸ” แž€แžถแžšแžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž“แžนแž„แž•แŸ’แžแŸ„แžแž›แžพ C++ API แž แžพแž™ Python API แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แŸ’แž“แžปแž„แž‘แž˜แŸ’แžšแž„แŸ‹แž‡แžถ wrapper แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแžœแžถแŸ”
แž€แžถแžšแž…แž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹ Go, Perl แž“แžทแž„
แžšแžผแž”แžธแŸ” แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธ C++ API แžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแžฑแŸ’แž™แž˜แžถแž“แžŸแŸ’แžแŸแžšแž—แžถแž– แž“แŸ„แŸ‡ C API แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แžšแŸ€แž”แž…แŸ†แž“แŸ…แž›แžพแž˜แžผแž›แžŠแŸ’แž‹แžถแž“แžšแž”แžŸแŸ‹แžœแžถ แžŠแŸ‚แž› rpm-ostree แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แž‘แŸแžšแŸ” แž แž€แžƒแžธ Python API แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแž€แž…แŸแž‰ แž“แžทแž„แž‡แŸ†แž“แžฝแžŸแžŠแŸ„แž™ libdnf Python API

แž˜แžปแžแž„แžถแžšแžŸแŸ’แž“แžผแž›แžšแž”แžŸแŸ‹ DNF แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แžšแž€แŸ’แžŸแžถแž‘แžปแž€แŸ” แžŠแŸ„แž™แžŸแžถแžšแžแŸ‚แžˆแžปแžแžŸแžถแž€แž›แŸ’แž”แž„แžŠแŸแž’แŸ† (แž”แŸ’แžšแž แŸ‚แž› 1400 แžแŸแžŸแŸ’แž) แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแžšแŸ†แž–แžนแž„แžแžถ แž€แžถแžšแž’แŸ’แžœแžพแžกแžพแž„แžœแžทแž‰ API แž“แžนแž„แž˜แžทแž“แž”แŸ‰แŸ‡แž–แžถแž›แŸ‹แžŠแž›แŸ‹แž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แž”แž“แŸ’แž‘แžถแžแŸ‹แž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž…แžปแž„แž€แŸ’แžšแŸ„แž™แž‘แŸแŸ” แž€แžถแžšแž‰แŸ‚แž€แžขแžถแž‚แžปแž™แž˜แŸ‰แž„แŸ‹ แž“แžทแž„แž›แž‘แŸ’แž’แž•แž›แžขแžถแž…แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž”แž“แŸ’แžแžทแž… แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž‘แžถแŸ†แž„แž“แŸแŸ‡แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž…แž„แž€แŸ’แžšแž„แž‡แžถแžฏแž€แžŸแžถแžšแž™แŸ‰แžถแž„แž›แŸ’แžขแŸ” แž“แŸ…แž€แŸ’แž“แžปแž„แž€แŸ†แžŽแŸ‚แžŠแŸ‚แž›แž”แžถแž“แžŠแž€แž…แŸแž‰ microdnfแž”แŸ’แžšแžพแž€แŸ’แž“แžปแž„แž€แžปแž„แžแžบแž“แŸแžš แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸ’แžšแŸ„แž„แž‘แžปแž€แžŠแžพแž˜แŸ’แž”แžธแžขแž“แžปแžœแžแŸ’แžแžŸแŸ†แžŽแžปแŸ†แžšแž„แž“แŸƒแžŸแž˜แžแŸ’แžแž—แžถแž– DNF แž แžพแž™แž€แžถแžšแžŸแž˜แŸ’แžšแŸแž…แž”แžถแž“แž“แžผแžœแž—แžถแž–แžŸแŸ’แž˜แžพแž‚แŸ’แž“แžถแž–แŸแž‰แž›แŸแž‰แž“แŸ…แž€แŸ’แž“แžปแž„แž˜แžปแžแž„แžถแžšแž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแž–แžทแž…แžถแžšแžŽแžถแž‘แŸแŸ”

แž‡แŸ†แž“แžฝแžŸแŸ” แžแŸ’แž…แž”แŸ‹แžƒแžธแž แžŸแŸแžœแžถแž€แž˜แŸ’แž˜ DBus แžแŸ’แž˜แžธแž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„แžŠแŸ‚แž›แž•แŸ’แžแž›แŸ‹แž“แžผแžœแž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž€แž‰แŸ’แž…แž”แŸ‹ แž“แžทแž„แž€แžถแžšแžขแžถแž”แŸ‹แžŠแŸแžแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž€แŸ’แžšแžถแž แŸ’แžœแžทแž€แŸ” แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸ’แžšแŸ„แž„แž“แžนแž„แž”แž„แŸ’แž€แžพแžแžแžถแŸ†แž„แž–แžธแžŠแŸ†แž”แžผแž„ แžŠแžผแž…แŸ’แž“แŸแŸ‡แž€แžถแžšแž”แž„แŸ’แž€แžพแžแžšแž”แžŸแŸ‹แžœแžถแžขแžถแž…แžแŸ’แžšแžผแžœแž€แžถแžšแž–แŸแž›แžœแŸแž›แžถแž…แŸ’แžšแžพแž“แŸ” PackageKit แž˜แžทแž“โ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž”แž„แŸ’แž€แžพแžโ€‹แžกแžพแž„โ€‹แž“แžถโ€‹แž–แŸแž›โ€‹แžแŸ’แž˜แžธแŸ—โ€‹แž“แŸแŸ‡โ€‹แž‘แŸ แž แžพแž™โ€‹แž”แžถแž“โ€‹แžŸแŸ’แžแžทแžโ€‹แž€แŸ’แž“แžปแž„โ€‹แžšแž”แŸ€แž”โ€‹แžแŸ‚แž‘แžถแŸ†โ€‹แžแžถแŸ†แž„โ€‹แž–แžธโ€‹แž†แŸ’แž“แžถแŸ† 2014 แžŠแŸ„แž™โ€‹แžŸแžถแžšโ€‹แžแŸ‚โ€‹แž”แžถแžแŸ‹โ€‹แž”แž„แŸ‹โ€‹แž—แžถแž–โ€‹แž–แžถแž€แŸ‹แž–แŸแž“แŸ’แž’แŸ” แž‡แžถแž˜แžฝแž™แž“แžนแž„แž—แžถแž–แž‡แžฟแž“แž›แžฟแž“แž“แŸƒแž”แŸ’แžšแž–แŸแž“แŸ’แž’ Snaps แž“แžทแž„ Flatpak แž€แžถแžšแž…แŸ‚แž€แž…แžถแž™แž€แŸ†แž–แžปแž„แž”แžถแžแŸ‹แž”แž„แŸ‹แž…แŸ†แžŽแžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแž›แžพ PackageKit แž‡แžถแžงแž‘แžถแž แžšแžŽแŸ แžœแžถแž›แŸ‚แž„แž˜แžถแž“แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž„แŸ’แž€แžพแžแž‘แŸ€แžแž แžพแž™ Fedora SilverBlue. แžŸแŸ’แžšแž‘แžถแž”แŸ‹แžขแžšแžผแž”แžธแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž€แž‰แŸ’แž…แž”แŸ‹แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แžแž›แŸ‹แž‡แžผแž“แž™แŸ‰แžถแž„แž‘แžผแž›แŸ†แž‘แžผแž›แžถแž™แžŠแŸ„แž™แž˜แž‡แŸ’แžˆแž˜แžŽแŸ’แžŒแž›แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธ GNOME แž“แžทแž„ KDE แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžŠแŸ†แžกแžพแž„แž€แž‰แŸ’แž…แž”แŸ‹ flatpak แž“แŸ…แž€แž˜แŸ’แžšแžทแžแžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž“แžธแž˜แžฝแž™แŸ—แŸ” API แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž”แž„แŸ’แžšแžฝแž”แž”แž„แŸ’แžšแžฝแž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž‘แž‘แžฝแž›แž”แžถแž“แž”แž‰แŸ’แž‡แžธแž€แž‰แŸ’แž…แž”แŸ‹แžŠแŸ‚แž›แž”แžถแž“แžŠแŸ†แžกแžพแž„แž‚แžบแž˜แžทแž“แž˜แžถแž“แž”แŸ’แžšแž™แŸ„แž‡แž“แŸแžŠแžผแž…แž–แžธแž˜แžปแž“แž‘แŸแŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹