Yum

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

Yellowdog updater, Modified

Yum обновляет Fedora 16.
Тип Пакетный менеджер
Разработчик Seth Vidal
Написана на Python[1]
Операционная система Linux
Последняя версия 3.4.3 (28 июня 2011)
Лицензия GNU GPL 2 или выше
Сайт yum.baseurl.org
 Медиафайлы на Викискладе

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 и несколько приложений командной строки. Среди графических интерфейсов к YUM — YUM Extender (yumex).[7]

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

Возможности

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

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

История

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

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

В 2003 году Robert G. Brown (университет Дьюка) опубликовал документацию по YUM.[22] В дальнейшем ряд дистрибутивов[22] начали использовать 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 из состава 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. Jang, Michael H. Chapter 7 – Setting Up a YUM Repository // Linux Patch Management: Keeping Linux Systems Up to Date (англ.). Prentice Hall Professional, 2005.
  2. Brown, Robert G. YUM (Yellowdog Updater, Modified) HOWTO - Introduction. Duke Physics. Дата обращения: 12 июля 2013.
  3. Shields, Ian RPM and YUM package management. Learn Linux, 101. IBM (11 мая 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. Koen Vervloesem, Attacks on package managers / LWN, April 8, 2009
  7. Yum Extender. Yumex Homepage. Дата обращения: 13 июля 2013.
  8. Bruce Byfield. Will DNF Replace Yum? Behind the Scenes at Fedora’s Future Package Manager (англ.). Linux Magazine (2014). Дата обращения: 21 октября 2018.
  9. Miller, Matthew Board Meeting, Rawhide Rebuilt, Firewall Debate, ARM 64, and DNF as Yum Replacement (5tFTW 2014-06-10). Fedora Magazine (11 июня 2014). Дата обращения: 4 мая 2016.
  10. OpenNews: В Fedora 22 ожидается замена пакетного менеджера Yum на DNF
  11. В Fedora 22 ожидается замена пакетного менеджера Yum на DNF / linuxforum (недоступная ссылка). Дата обращения: 13 мая 2015. Архивировано 17 ноября 2015 года.
  12. Технический комитет Fedora подтвердил планы по замене Yum на DNF в Fedora 22 — Новости (nixp.ru)
  13. Edge, Jake DNF and Yum in Fedora. LWN.net (15 января 2014). Дата обращения: 16 октября 2018.
  14. YUM 4 is available for testing – Blog.CentOS.org
  15. OpenNews: Началось тестирование пакетного менеджера YUM 4
  16. Jang, Michael H. Linux Patch Management: Keeping Linux Systems Up to Date (англ.). Prentice Hall Professional. — P. 199. — (Bruce Perens' Open Source series). — ISBN 9780132366755.
  17. Fedora Documentation — Downgrade to a Previous Version
  18. Seth Vidal, creator of "yum" open source software, killed in bike accident off Hillandale Rd.. Durham io: The Daily Durham (9 июля 2013). Дата обращения: 13 июля 2013.
  19. Thank you, Seth Vidal. Red Hat (10 июля 2013). Дата обращения: 13 июля 2013.
  20. Bort, Julie 36-Year-Old Open Source Guru Seth Vidal Has Been Tragically Killed. Business Insider (9 июля 2013). Дата обращения: 13 июля 2013.
  21. Погиб один из ведущих разработчиков Fedora Linux, CNews (10 июля 2013). Дата обращения 21 октября 2018.
  22. Brown, Robert G. YUM: Yellowdog Updater, Modified (17 декабря 2003). Дата обращения: 13 июля 2013.
  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 июля 2004). Дата обращения: 12 июля 2013. Архивировано 21 июля 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. — С. 84. — ISBN 9781411621770.
  29. Negus, Christopher; Bresnahan, Christine. Linux Bible (неопр.). John Wiley & Sons, 2012. — С. 598. — ISBN 9781118286906.
  30. Yum Plug-ins. Red Hat. Дата обращения: 12 июля 2013.
  31. Maintaining yum (недоступная ссылка). CentOS. Дата обращения: 12 июля 2013. Архивировано 18 ноября 2018 года.
  32. createrepo(8). Linux manual page. Дата обращения: 12 июля 2013.
  33. 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. Signed Repository Metadata is now Available for CentOS 6 and 7 for the Updates Repo – Blog.CentOS.org
  42. Improving CentOS package delivery security with signed repository metadata – Blog.CentOS.org (англ.). blog.centos.org. Дата обращения: 25 октября 2018.
  43. Secure distribution of RPM packages - Red Hat Customer Portal (англ.). access.redhat.com. Дата обращения: 25 октября 2018.
  44. cdn.redhat.com X.509 certificate - Red Hat Customer Portal (англ.). access.redhat.com. Дата обращения: 25 октября 2018.
  45. PackageKit - Main Page

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.