ΠΠ΅Π½ ΠΠΎΡΡΠ½ (Ben Cotton), ΠΊΠΎΠΉΡΠΎ Π·Π°Π΅ΠΌΠ° ΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° Fedora Program Manager Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Red Hat, ΠΎΠ±ΡΠ²ΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠΈ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ Fedora Linux ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ DNF5. Π Fedora Linux 39 ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΎ Π΅ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ dnf, libdnf ΠΈ dnf-cutomatic Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ DNF5 ΠΈ Π½ΠΎΠ²Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libdnf5. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°Π½ΠΎ ΠΎΡ ΠΊΠΎΠΌΠΈΡΠ΅ΡΠ° FESCo (Fedora Engineering Steering Committee), ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° Fedora.
ΠΡΠ΅Π΄ΠΈ Π²ΡΠ΅ΠΌΠ΅ DNF Π·Π°ΠΌΠ΅Π½ΠΈ Yum, ΠΊΠΎΠΉΡΠΎ Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python. Π DNF ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΡ Π° ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ ΠΈ ΠΈΠ·Π½Π΅ΡΠ΅Π½ΠΈ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ hawkey, librepo, libsolv ΠΈ libcomps, Π½ΠΎ ΠΎΡΡΠ°ΡΠΈΡΠΈΡΠ΅ ΠΈ Π²ΠΈΡΠΎΠΊΠΎΡΡΠΎΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΎΡΡΠ°Π½Π°Ρ Π° Π½Π° Python. ΠΡΠΎΠ΅ΠΊΡΡΡ DNF5 ΡΠ΅Π»ΠΈ ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΡΠ°Π²Π°ΡΠΈΡΠ΅ Π½Π° Python ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π½Π° C++ ΠΈ ΠΈΠ·Π½Π°ΡΡΠ½Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π² ΠΎΡΠ΄Π΅Π»Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libdnf5 Ρ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΎΠΊΠΎΠ»ΠΎ Π½Π΅Ρ Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Python API.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° C++ Π²ΠΌΠ΅ΡΡΠΎ Python ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΎΡΡΡΠ²Π΅ΠΌ ΠΎΡ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠΈΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΠΎ-Π²ΠΈΡΠΎΠΊΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π° Π½Π΅ ΡΠ°ΠΌΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π² ΠΌΠ°ΡΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄, Π½ΠΎ ΠΈ ΡΡΠ΅Π· ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ ΠΎΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈΡΠ΅ ΠΈ ΠΏΡΠ΅ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ (ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π±Π°Π·ΠΈ Ρ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅). ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ DNF5 Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΠΎΡ ΠΏΡΠΈΠ²ΡΡΠ·Π°Π½ΠΎΡΡΡΠ° ΠΊΡΠΌ PackageKit, Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠΉΡΠΎ Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ Π½ΠΎΠ² ΡΠΎΠ½ΠΎΠ² ΠΏΡΠΎΡΠ΅Ρ DNF Daemon, Π·Π°ΠΌΠ΅Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° PackageKit ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π² Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ.
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ ΡΡΡΠΎ ΡΠ΅ Π΄Π°Π΄Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π½ΡΠΊΠΎΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°ΡΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΡΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π½ΠΎΠ²ΠΎΡΠΎ DNF Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎ-ΠΏΡΠΎΠ·ΡΠ°ΡΠ½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ Π·Π° Π½Π°ΠΏΡΠ΅Π΄ΡΠΊΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅; Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ RPM-ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ; Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π² ΠΎΡΡΠ΅ΡΠΈΡΠ΅ Π·Π° Π·Π°Π²ΡΡΡΠ΅Π½ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π° ΠΎΡ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡΠ΅ Π² ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ (scriplets); ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ ΠΏΠΎ-ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄ΠΎΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° Π²Ρ
ΠΎΠ΄Π° Π·Π° bash.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
