Fedora 41 გეგმავს DNF5 პაკეტის მენეჯერზე გადასვლას

В выпуске 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 требовательные к производительности низкоуровневые функции были переписаны и вынесены в отдельные Си-библиотеки hawkey, librepo, libsolv и libcomps, но каркас и высокоуровневые компонеты остались на языке Python. Проект DNF5 нацелен на унификацию имеющихся низкоуровневых библиотек, переписывание на языке С++ остающихся на Python компонентов управления пакетами и вынос базовой функциональности в отдельную библиотеку libdnf5 с созданием вокруг этой библиотеки обвязки для сохранения Python API.

Python-ის ნაცვლად C++-ის გამოყენებამ მოგვცა საშუალება დაგვეღწია დამოკიდებულებების დიდი რაოდენობა, შეგვემცირებინა ინსტრუმენტარიუმის ზომა და გაგვეუმჯობესებინა პროდუქტიულობა. უფრო მაღალი ეფექტურობა მიიღწევა არა მხოლოდ მანქანის კოდში კომპილაციის გამოყენებით, არამედ ტრანზაქციის ცხრილის გაუმჯობესებული განხორციელებით, საცავებიდან დატვირთვის ოპტიმიზაციისა და მონაცემთა ბაზის რესტრუქტურიზაციის გზით (ბაზები სისტემის მდგომარეობისა და ოპერაციის ისტორიით გამოყოფილია). DNF5 ინსტრუმენტარიუმის გამოყოფილია PackageKit-ისგან ახალი ფონური პროცესის სასარგებლოდ, სახელწოდებით DNF Daemon, რომელიც ცვლის PackageKit ფუნქციონირებას და უზრუნველყოფს ინტერფეისს გრაფიკულ გარემოში პაკეტებისა და განახლებების მართვისთვის.

გადამუშავებამ ასევე შესაძლებელი გახადა გარკვეული გაუმჯობესებების განხორციელება, რაც აუმჯობესებს პაკეტის მენეჯერის გამოყენებადობას. მაგალითად, ახალი DNF უზრუნველყოფს ოპერაციების პროგრესის უფრო ვიზუალურ მითითებას; დამატებული მხარდაჭერა ტრანზაქციებზე ადგილობრივი RPM პაკეტების გამოყენებისთვის; დაამატა დასრულებული ტრანზაქციების შესახებ ანგარიშებში ჩვენების შესაძლებლობა, რომელიც დამზადებულია პაკეტებში ჩაშენებული სკრიპტებით; შემოთავაზებულია ბაშის შეყვანის დასრულების უფრო მოწინავე სისტემა.

წყარო: opennet.ru

ახალი კომენტარის დამატება