ΠΡΠ½ΠΈΠ΅Π» ΠΠ°Ρ
(Daniel Mach) ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Red Hat ΡΠΎΠΎΠ±ΡΠΈΠ» ΠΎ Π½Π°ΡΠ°Π»Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° DNF 5, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Python Π»ΠΎΠ³ΠΈΠΊΠΈ DNF Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ libdnf, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° C++. Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ DNF 5 ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ Π½Π°ΡΠ°ΡΡ Π² ΠΈΡΠ½Π΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Fedora 33, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π² ΠΎΠΊΡΡΠ±ΡΠ΅ 2020 Π³ΠΎΠ΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Rawhide, Π° Π² ΡΠ΅Π²ΡΠ°Π»Π΅ 2021 Π³ΠΎΠ΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌ DNF 4. Π‘ΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ DNF 4 Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Red Hat Enterprise Linux 8.
ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π΄ΠΎΡΡΠΈΠ³ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΡΡΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΊΠΎΠ΄Π° Π±Π΅Π· Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ API/ABI. ΠΠ»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΏΠΎΡΠ΅ΡΠ΅ΠΉ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ PackageKit ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ libdnf Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ API «libhif». ΠΡΠΈ ΡΡΠΎΠΌ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ API, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ API.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Python API Π² DNF Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π²Π»Π΅Π½Π°, Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π½Π° Python Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Π° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ libdnf (C++), ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Π° Π²ΠΎΠΊΡΡΠ³ C++ API, Π° Python API Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠΎΡΠΌΠ΅ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π±ΡΠ΄ΡΡ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Ρ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ Π΄Π»Ρ Go, Perl ΠΈ
Ruby. ΠΠΎΡΠ»Π΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ C++ API Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ ΠΈ C API, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΠ½ rpm-ostree. Hawkey Python API Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»ΡΠ½ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ½ Π½Π° libdnf Python API.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ DNF Π±ΡΠ΄Π΅Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π°Π»ΠΈΡΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° (ΠΎΠΊΠΎΠ»ΠΎ 1400 ΡΠ΅ΡΡΠΎΠ²) ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠ° API Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ ΡΠ°Π·Π±ΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π²ΡΠ²ΠΎΠ΄, Π½ΠΎ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Ρ
ΠΎΡΠΎΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ. Π ΡΡΠ΅Π·Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ microdnf, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ
, ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ DNF, Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠΈΡΠ΅ΡΠ° Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ.
ΠΠΌΠ΅ΡΡΠΎ PackageKit Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ DBus, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½ΡΠ»Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. PackageKit ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Ρ 2014 Π³ΠΎΠ΄Π° ΠΈΠ·-Π·Π° ΠΏΠΎΡΠ΅ΡΠΈ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ. Π‘ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌ Snaps ΠΈ Flatpak Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ ΡΠ΅ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΊ PackageKit, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΎΠ½ ΡΠΆΠ΅ Π½Π΅ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΠ±ΠΎΡΠΊΠ°Ρ
Fedora SilverBlue. Π£ΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠ΅Π½ΡΡΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ GNOME ΠΈ KDE, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ flatpak-ΠΏΠ°ΠΊΠ΅ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π£Π½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ API Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΊΠ°ΠΊ ΡΠ°Π½ΡΡΠ΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru