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