tdnf (сокр. от Tiny Dandified Yum) — свободный менеджер пакетов для RPM-совместимых дистрибутивов Linux, разработанный компанией VMware. По своей модели работы tdnf близок к YUM и DNF: он использует RPM-пакеты и репозитории формата YUM, но ориентирован на меньший размер и отсутствие обязательных зависимостей от Python. Изначально tdnf был создан как штатный менеджер пакетов для Photon OS, а позднее команда `tdnf` стала использоваться в Azure Linux и НАЙС.ОС.
История Публичные сведения о проекте появились в 2015 году в ходе обсуждения в рассылке rpm-ecosystem. Представители VMware объясняли, что при разработке Photon OS решили создать «небольшую» реализацию dnf на языке C, а также отдельную библиотеку `libtdnf`, предназначенную для использования другими приложениями. В этом же обсуждении отмечалось, что командная утилита `tdnf` использует библиотеку `libtdnf`, а та, в свою очередь, обращается к `librepo` и `libhawkey`.
Разработка tdnf была связана с задачей уменьшения системного окружения Photon OS при сохранении совместимости с экосистемой RPM и привычной моделью работы YUM/DNF. В документации Photon OS tdnf описывается как открытый yum-совместимый менеджер пакетов, позволяющий сохранить небольшой размер системы.
Архитектура tdnf состоит из пользовательской консольной утилиты и библиотеки `libtdnf`. В исходной документации проекта указано, что исходный код `libtdnf` распространяется по лицензии LGPL 2.1, а исходный код утилиты `tdnf` — по GPL 2.0.
Согласно спецификации пакета Photon OS, tdnf использует библиотеки `rpm-libs`, `libsolv`, `curl` и `OpenSSL`; тем самым он встроен в обычную инфраструктуру RPM-пакетирования и разрешения зависимостей.
Функциональность В официальной документации Photon OS tdnf характеризуется как менеджер пакетов, команды и параметры которого представляют собой подмножество возможностей DNF.
К основным возможностям tdnf относятся: установка, удаление и обновление пакетов; поиск пакетов и просмотр сведений о них; работа с метаданными и кэшем репозиториев; синхронизация установленных пакетов с содержимым репозиториев (`distro-sync`); ведение истории транзакций с возможностью `rollback`, `undo` и `redo`; автоматическая проверка и установка обновлений через отдельную утилиту `tdnf-automatic` и `systemd`-таймеры.
Документация Photon OS указывает, что основным конфигурационным файлом tdnf является `/etc/tdnf/tdnf.conf`, а описания репозиториев читаются из каталога `/etc/yum.repos.d/` в формате `.repo`, совместимом с YUM.
Использование
Photon OS В Photon OS tdnf является стандартным менеджером пакетов. Документация проекта прямо описывает его как основной механизм установки, обновления и удаления пакетов в системе.
Azure Linux В документации Microsoft по Azure Linux указано, что управление пакетами в этой системе осуществляется с помощью команды `tdnf`. В таблицах соответствия команд для пользователей Ubuntu Microsoft сопоставляет `tdnf` операциям установки, удаления, поиска и обновления пакетов.
Использование `tdnf` в Azure Linux отражено и в другой документации Microsoft, например в инструкциях по установке Azure CLI для систем с этим дистрибутивом.
НАЙС.ОС В материалах проекта НАЙС.ОС указано использование пакетных менеджеров `dnf` и `tdnf`. В документации установщика NiceOS Installer отмечается, что RPM-пакет установщика может быть установлен стандартными средствами `dnf` или `tdnf`, а `tdnf` прямо назван пакетным менеджером, используемым в процессе установки. На сайтах проекта также публикуются пакеты и вспомогательные компоненты, связанные с `tdnf`, включая `tdnf-automatic` и пакеты библиотек `tdnf`.
Место в экосистеме Обозреватель InfoWorld характеризовал TDNF как открытый инструмент VMware, обеспечивающий DNF-совместимое управление пакетами без большого Python-следа, характерного для Yum.
Наличие отдельного менеджера пакетов в Photon OS было также учтено в смежных инструментах автоматизации. В релизных примечаниях Salt 3003 отмечалось добавление поддержки VMware Photon OS, использующей tdnf как реализацию пакетного менеджера семейства RPM/YUM.
Особенности и ограничения Официальная документация Photon OS подчёркивает, что tdnf реализует не весь набор возможностей DNF, а лишь часть его команд и параметров. Это означает, что при внешнем сходстве синтаксиса tdnf не является полной заменой DNF во всех сценариях.
См. также RPM YUM DNF Photon OS Azure Linux НАЙС.ОС
Примечания
Ссылки Официальный репозиторий проекта Раздел о tdnf в документации Photon OS
Категория:Свободные системы управления пакетами Категория:Свободное программное обеспечение, написанное на Python