Перейти к содержанию

Tdnf

Статья из Авикипедии. Энциклопедии
    • tdnf** (сокращение от **Tiny Dandified Yum**) — это свободный менеджер пакетов для дистрибутивов Linux, совместимых с форматом RPM. Разработанный компанией VMware, он следует модели работы, аналогичной YUM и DNF, используя RPM-пакеты и репозитории в формате YUM. Ключевыми особенностями tdnf являются компактный размер и отсутствие обязательной зависимости от интерпретатора Python. Изначально созданный как стандартный пакетный менеджер для дистрибутива Photon OS, впоследствии утилита `tdnf` стала применяться в таких операционных системах, как Azure Linux и НАЙС.ОС.
    1. История

Первая публичная информация о проекте появилась в 2015 году в ходе дискуссии в рассылке, посвящённой экосистеме RPM. Специалисты VMware пояснили, что при создании Photon OS была поставлена задача разработать «облегчённую» реализацию DNF на языке C, а также выделить отдельную библиотеку `libtdnf` для использования сторонними приложениями. В том же обсуждении отмечалось, что консольная утилита `tdnf` базируется на библиотеке `libtdnf`, которая, в свою очередь, взаимодействует с библиотеками `librepo` и `libhawkey`.

Создание tdnf было продиктовано необходимостью минимизировать системное окружение Photon OS, сохранив при этом полную совместимость с экосистемой RPM и удобной моделью работы, характерной для YUM и DNF. В документации Photon OS tdnf описывается как открытый менеджер пакетов, совместимый с YUM и способствующий поддержанию малого размера системы.

    1. Архитектура

Архитектура tdnf включает в себя консольную утилиту для пользователей и библиотеку `libtdnf`. Согласно исходной документации проекта, код библиотеки `libtdnf` распространяется на условиях лицензии GNU Lesser General Public License версии 2.1, а исходный код утилиты `tdnf` — под лицензией GNU General Public License версии 2.0.

Как указано в спецификации пакета Photon OS, tdnf задействует библиотеки `rpm-libs`, `libsolv`, `curl` и `OpenSSL`, что обеспечивает его интеграцию в стандартную инфраструктуру для работы с RPM-пакетами и разрешения их зависимостей.

    1. Функциональность

Официальная документация Photon OS определяет tdnf как менеджер пакетов, чьи команды и параметры представляют собой подмножество функциональных возможностей DNF.

К числу основных операций, поддерживаемых tdnf, относятся:

  • Установка, удаление и обновление программных пакетов.
  • Поиск пакетов и получение информации о них.
  • Работа с метаданными и кэшем репозиториев.
  • Синхронизация установленных пакетов с содержимым репозиториев (команда `distro-sync`).
  • Ведение журнала транзакций с возможностью отката (`rollback`), отмены (`undo`) и повтора (`redo`) действий.
  • Автоматическая проверка и установка обновлений с помощью отдельной утилиты `tdnf-automatic` и таймеров `systemd`.

Основным конфигурационным файлом tdnf является `/etc/tdnf/tdnf.conf`. Описания репозиториев считываются из каталога `/etc/yum.repos.d/` из файлов с расширением `.repo` в формате, совместимом с YUM.

    1. Использование
      1. Photon OS

В дистрибутиве Photon OS утилита tdnf служит стандартным менеджером пакетов. Документация проекта прямо указывает на него как на основной инструмент для установки, обновления и удаления программного обеспечения в системе.

      1. Azure Linux

Согласно документации Microsoft по Azure Linux, управление пакетами в этой операционной системе осуществляется с помощью команды `tdnf`. В таблицах соответствия команд для пользователей Ubuntu компания Microsoft сопоставляет операции установки, удаления, поиска и обновления пакетов с вызовами `tdnf`.

Использование `tdnf` в Azure Linux также отражено в других руководствах Microsoft, например, в инструкциях по установке Azure CLI для данного дистрибутива.

      1. НАЙС.ОС

В материалах проекта НАЙС.ОС упоминается использование менеджеров пакетов `dnf` и `tdnf`. Документация установщика NiceOS Installer отмечает, что RPM-пакет установщика может быть инсталлирован стандартными средствами `dnf` или `tdnf`, причём `tdnf` прямо назван пакетным менеджером, используемым в процессе установки системы. На ресурсах проекта также публикуются пакеты и вспомогательные компоненты, связанные с `tdnf`, включая `tdnf-automatic` и библиотечные пакеты `tdnf`.

    1. Место в экосистеме

Обозреватель InfoWorld охарактеризовал TDNF как открытый инструмент от VMware, который обеспечивает совместимое с DNF управление пакетами без необходимости включения в систему объёмных компонентов Python, характерных для Yum.

Наличие отдельного менеджера пакетов в Photon OS было учтено и в инструментах автоматизации. Например, в примечаниях к выпуску Salt 3003 сообщалось о добавлении поддержки VMware Photon OS, где в качестве реализации пакетного менеджера семейства RPM/YUM используется tdnf.

    1. Особенности и ограничения

Официальная документация Photon OS подчёркивает, что tdnf реализует не полный набор возможностей DNF, а лишь определённое подмножество его команд и параметров. Это означает, что, несмотря на внешнее сходство синтаксиса, tdnf не может служить полной заменой DNF во всех возможных сценариях использования.

    1. См. также
  • RPM
  • YUM
  • DNF
  • Photon OS
  • Azure Linux
  • НАЙС.ОС
    1. Примечания
    1. Ссылки

Ссылки[править | править код]