Бен Коттон (Ben Cotton), занимающий в компании Red Hat должность Fedora Program Manager, объявил о намерении перевести 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 компонентов управления пакетами и вынос базовой функциональности в отдельную библиотеку libdnf5 с созданием вокруг этой библиотеки обвязки для сохранения Python API.

Использование языка С++ вместо Python позволит избавиться от большого числа зависимостей, сократить размер инструментария и повысить производительность. Более высокая производительность достигается не только благодаря применению компиляции в машинный код, но и за счёт улучшенной реализации таблицы транзакций, оптимизации загрузки из репозиториев и реструктуризации БД (разделены базы с состоянием системы и историей операций). Инструментарий DNF5 избавлен от привязки к PackageKit, вместо которого задействован новый фоновый процесс DNF Daemon, заменяющий функциональность PackageKit и предоставляющий интерфейс для управления пакетами и обновлениями в графических окружениях.

Переработка также даст возможность реализовать некоторые улучшения, повышающие удобство работы с пакетным менеджером. Например, в новом DNF реализована более наглядная индикация прогресса выполнения операций; добавлена поддержка использования локальных RPM-пакетов для транзакций; добавлена возможность показа в отчётах о выполненных транзакциях информации, выдаваемой встроенными в пакеты скриптами (scriplets); предложена более продвинутая система автодополнения ввода для bash.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter <<<

  • cryptOP
    link
    fedilink
    arrow-up
    0
    ·
    4 years ago

    я фигею, дорогая редакция. столько лет они (@alpha) доказывали, что все типа топ, что python - это так и надо, что java python не тормозит…

    @cocucka, подтверди, пожалуйста.

    • sorrow
      link
      fedilink
      arrow-up
      0
      ·
      4 years ago

      я не удивлюсь, если после переписывания оно не будет работать сколько нибудь быстрее. все критичные компоненты там и так уже давно на C.

      • cryptOP
        link
        fedilink
        arrow-up
        0
        ·
        4 years ago

        я видел только портянки скриптов. не знаю, что там на си.

        • sorrow
          link
          fedilink
          arrow-up
          0
          ·
          4 years ago

          Ты читал пост или только скопипастил?

            • sorrow
              link
              fedilink
              arrow-up
              0
              ·
              4 years ago

              Это не даёт представления о внутреннем устройстве.

  • odalist
    link
    fedilink
    arrow-up
    0
    ·
    4 years ago

    Давно было пора этим заняться…

  • cocucka
    link
    fedilink
    arrow-up
    0
    ·
    4 years ago

    Збс, теперь при установке софта менеджер будет валиться с сегфолтами

    • cryptOP
      link
      fedilink
      arrow-up
      0
      ·
      4 years ago

      еще через 15 лет они его на раст перепишут…

  • Bagrov
    link
    fedilink
    arrow-up
    0
    ·
    4 years ago

    Ничего не имею против Python, но лучше, если базовая система от него не будет зависеть.