Yellowdog Updater, Modified

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Yellowdog updater, Modified
Yum.png
Yum-update.png
Yum обновляет Fedora 16.
Тип Пакетный менеджер
Разработчик Seth Vidal
Написана на Python[1]
Операционная система Linux
Последняя версия 3.4.3 (28 июня 2011)
Лицензия GNU GPL 2 или выше
Сайт yum.baseurl.org
Commons-logo.svg Yellowdog updater, Modified на Викискладе

Yellowdog Updater, Modified (YUM) — открытый консольный менеджер пакетов для дистрибутивов Linux, основанных на пакетах формата RPM (RedHat, CentOS, Fedora, Oracle Linux, ОСь)[2]. Позволяет облегчить работу с обновлениями дистрибутивов, отслеживая взаимозависимости между пакетами. Распространяется под лицензией GNU GPLv2. Первоначально проект был разработан программистом Seth Vidal и группой волонтёров. Для работы с YUM используется интерфейс командной строки, однако существуют надстройки, предоставляющие графический интерфейс для функциональности YUM.

YUM позволяет системным администраторам и пользователям настроить автоматизированные обновление ПО и разрешение зависимостей[3]. Для этого используется ряд инструментов, таких как yum-updatesd, yum-updateonboot, yum-cron, PackageKit. Как и Advanced Package Tool (система APT) из дистрибутивов класса Debian, менеджер YUM работает с репозиториями (наборами) пакетов от производителя дистрибутива или от сторонних авторов. Возможно создание локальных или офлайновых копий репозиториев,[4] либо доступ к ним через сетевое Интернет-соединение.

В своем внутреннем устройстве YUM зависит от приложения RPM и использует формат RPM-пакетов. Пакеты обычно имеют криптографические подписи (MD5-хэш и «digisig»)[5] для подтверждения того, что данный файл был подготовлен определенным автором (однако метаданные не подписывались до начала 2010-х годов)[6]. Приложение YUM реализовано как набор библиотек на языке программирования Python и несколько приложений командной строки.[7] Subsequent adopters included[7] Среди графических интерфейсов к YUM — YUM Extender (yumex).[8]

В Fedora 18-й версии началось внедрение более быстрого форка yum под названием «DNF»[9], с 20 версии он мог использоваться вместо yum, а в 22 версии весной 2014 года произошел переход от YUM в пользу dnf.[10][11][12][13] DNF был создан для улучшения YUM в части производительности, качества разрешения конфликтов зависимостей и для упрощения интеграции с другими приложениями.[14] В то же время, в версию YUM 4 2017 года были перенесены многие возможности DNF, в том числе, ускоренное разрешение зависимостей[15][16].

Возможности[править | править код]

YUM представляет собой оболочку для RPM, обеспечивающую работу с репозиториями. Был создан для решения следующих задач[17]:

  • поиск пакетов в репозиториях
  • установка пакетов из репозиториев
  • установка пакетов из .rpm-файлов, с удовлетворением зависимостей с помощью репозиториев
  • обновление системы
  • удаление ненужных пакетов
  • даунгрейд пакетов[18]

История[править | править код]

В 1999-2001 году был разработан менеджер Yellowdog UPdater (YUP) в компании Terra Soft Solutions в качестве основы для графического инсталлятора дистрибутива Yellow Dog Linux.[2].

Позже, в целях управления системами Red Hat Linux в университете Дьюка, сотрудники физического факультета Seth Vidal и Michael Stenner полностью переписали YUP, создав YUM. Seth Vidal продолжил работу над программой до 2013 года.[19][20][21][22]

В 2003 году Robert G. Brown (университет Дьюка) опубликовал документацию по YUM.[7] В дальнейшем ряд дистрибутивов[7] начали использовать YUM, в том числе Fedora, CentOS и другие, построенные на основе RPM. На YUM также перешел Yellow Dog Linux. Оригинальная утилита YUP в последний раз обновлялась в 2001 году.[23] К 2005 году менеджер YUM использовался примерно на половине рынка Linux-дистрибутивов[1], и в 2007 году 2007 YUM признавался наиболее популярным менеджером для RPM дистрибутивов.[24]

Приложение YUM устраняло ряд видимых недостатков старого менеджера APT-RPM,[25] и ограничения оригинального менеджера пакетов up2date[en] из состава Red Hat. В вышедшей в 2007 году версии Red Hat Enterprise Linux 5 менеджер up2date был заменен на YUM.[26][27] Некоторые авторы называют пакет "Yellowdog Update Manager" или предлагают расшифровку "Your Update Manager".[28][29]

Знание команд YUM часто является требованием для получения сертификатов по администрированию Linux.[3]

Пакет YUM распространяется под условиями GNU General Public License, что позволяет свободно распространять приложение и его модификации.[2]

Расширения[править | править код]

Внешний вид приложения Yum Extender (yumex) — графической оболочки для YUM.

В версии 2.x YUM был добавлен интерфейс для написания расширений на языке Python. Такие расширения позволяют изменять поведение YUM, ряд плагинов устанавливается по умолчанию.[30] Например, обычно устанавливается[31] пакет yum-utils который содержит команды для работы с YUM API и ряд плагинов.

Метаданные[править | править код]

Информация о пакетах (в отличие от самих файлов пакетов) в терминологии YUM называется метаданными. В состав метаданных входят списки зависимостей, то есть список других пакетов и их версий, которые необходимы для данного. Корректное заполнение метаданных позволяет избегать «ада зависимостей». Коллекции пакетов и их метаданных организуются в репозитории, основные из них поддерживаются производителем дистрибутива. При помощи отдельной утилиты createrepo возможно создание частных YUM-репозиториев, в которых метаданные указанного набора пакетов собраны в единый XML файл (или в базу метаданных в формате SQLite.[32][33] Дополнительная утилита mrepo (ранее называлась «Yam») упрощает создание и поддержку репозиториев.[34]

XML-репозитории YUM быстро приобрели популярность для публикации наборов пакетов для дистрибутивов на базе RPM-пакетов.[33] Кроме традиционных RPM дистрибутивов от RedHat (RHEL, Fedora), их клонов (CentOS) и многочисленных менее известных вариаций, репозитории YUM могут использоваться в SUSE Linux 10.1[35] (менеджер пакетов YaST). Система репозиториев Open Build Service также использует формат YUM XML.[33]

Программа YUM автоматически синхронизирует метаданные через сеть.[36][37]

Механизмы безопасности, применяемые к метаданным в YUM неоднократно критиковались[38][39][40][6]. В 2015 годах CentOS внедрил подписывание метаданных для основных репозиториев CentOS 6 и CentOS 7[41], а в 2018 - для всех репозиториев[42] RedHat традиционно решал проблему при помощи безопасного транспорта[43][44]

Графические оболочки[править | править код]

PackageKit - основной графический интерфейс к менеджеру пакетов в ОС Fedora.

См. также[править | править код]

Примечания[править | править код]

  1. 1 2 Jang, Michael H. Chapter 7 – Setting Up a YUM Repository // Linux Patch Management: Keeping Linux Systems Up to Date. — Prentice Hall Professional, 14 December 2005.
  2. 1 2 3 Brown, Robert G. YUM (Yellowdog Updater, Modified) HOWTO - Introduction. Duke Physics. Проверено 12 июля 2013.
  3. 1 2 Shields, Ian RPM and YUM package management. Learn Linux, 101. IBM (11 May 2010). Проверено 12 июля 2013.
  4. Creating a Local YUM Repository Using an ISO Image. Oracle. Проверено 12 июля 2013.
  5. Ian Shields, RPM and YUM package management / IBM, 2010
  6. 1 2 Koen Vervloesem, Attacks on package managers / LWN, April 8, 2009
  7. 1 2 3 4 Brown, Robert G. YUM: Yellowdog Updater, Modified (17 December 2003). Проверено 13 июля 2013.
  8. Yum Extender. Yumex Homepage. Проверено 13 июля 2013.
  9. Bruce Byfield. Will DNF Replace Yum? Behind the Scenes at Fedora’s Future Package Manager (англ.). Linux Magazine (2014). Проверено 21 октября 2018.
  10. Miller, Matthew Board Meeting, Rawhide Rebuilt, Firewall Debate, ARM 64, and DNF as Yum Replacement (5tFTW 2014-06-10). Fedora Magazine (11 June 2014).
  11. OpenNews: В Fedora 22 ожидается замена пакетного менеджера Yum на DNF
  12. В Fedora 22 ожидается замена пакетного менеджера Yum на DNF / linuxforum
  13. Технический комитет Fedora подтвердил планы по замене Yum на DNF в Fedora 22 — Новости (nixp.ru)
  14. Edge, Jake DNF and Yum in Fedora. LWN.net (15 января 2014). Проверено 16 октября 2018.
  15. https://blog.centos.org/2017/10/yum-4-is-available-for-testing/
  16. https://www.opennet.ru/opennews/art.shtml?num=47471
  17. Jang, Michael H. Linux Patch Management: Keeping Linux Systems Up to Date. — Prentice Hall Professional. — P. 199. — ISBN 9780132366755.
  18. Fedora Documentation — Downgrade to a Previous Version
  19. Seth Vidal, creator of "yum" open source software, killed in bike accident off Hillandale Rd.. Durham io: The Daily Durham (9 July 2013). Проверено 13 июля 2013.
  20. Thank you, Seth Vidal. Red Hat (10 July 2013). Проверено 13 июля 2013.
  21. Bort, Julie 36-Year-Old Open Source Guru Seth Vidal Has Been Tragically Killed. Business Insider (9 July 2013). Проверено 13 июля 2013.
  22. Погиб один из ведущих разработчиков Fedora Linux, CNews (10.07.2013). Проверено 21 октября 2018.
  23. Yellow Dog Update Program. SourceForge repository. Проверено 18 июля 2013.
  24. Fusco, John. The Linux Programmer's Toolbox. — Pearson Education. — ISBN 9780132703048.
  25. Murphy, David How to run your own yum repository. Linux Foundation (23 July 2004). Проверено 12 июля 2013.
  26. What are the yum equivalents of up2date and rpm common tasks on Red Hat Enterprise Linux?. Red Hat.
  27. Red Hat Enterprise linux 5. Feature, function, and benefit summary (англ.). RedHat (2007). Проверено 21 октября 2018.
  28. Sweeney, Michael. Network Security Using Linux. — 2005. — P. 84. — ISBN 9781411621770.
  29. Negus, Christopher. Linux Bible / Christopher Negus, Bresnahan. — John Wiley & Sons, 2012. — P. 598. — ISBN 9781118286906.
  30. Yum Plug-ins. Red Hat. Проверено 12 июля 2013.
  31. Maintaining yum. CentOS. Проверено 12 июля 2013.
  32. createrepo(8). Linux manual page. Проверено 12 июля 2013.
  33. 1 2 3 Standards Rpm Metadata. openSUSE. Проверено 12 июля 2013.
  34. mrepo. Freecode. Проверено 12 июля 2013.
  35. SUSE Linux 10.1 Alpha 2 is ready. Проверено 12 июля 2013. Архивировано 8 февраля 2006 года.
  36. Schmitz, Dietrich T. YUM vs. APT: Which is Best?.
  37. ‘Linux Advocates’ Throws in the Towel. FOSS Force (январь 2015).
  38. Attacks on Package Managers,Отчет о проблемах безопасности при работе менеджеров пакетов в Linux 15.07.2008
  39. Justin Cappos, et al. Package Management Security University of Arizona Technical Report (2008): 08-02; "A look in the mirror: Attacks on package managers" / Proceedings of the 15th ACM conference on Computer and communications security. ACM, 2008.
  40. Justin Cappos, Justin Samuel, Package managers still vulnerable: how to protect your systems / USENIX, 2009
  41. https://blog.centos.org/2015/05/signed-repository-metadata-is-now-available-for-centos-6-and-7-for-the-updates-repo/
  42. https://blog.centos.org/2018/07/improving-centos-package-delivery-security-with-signed-repository-metadata/
  43. https://access.redhat.com/blogs/766093/posts/1976693
  44. https://access.redhat.com/articles/1373143
  45. https://www.freedesktop.org/software/PackageKit/

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