Yum

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Be nt all (обсуждение | вклад) в 07:08, 25 октября 2018 (оформление). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
Yellowdog updater, Modified
Логотип программы Yellowdog updater, Modified
Скриншот программы Yellowdog updater, Modified
Yum обновляет Fedora 16.
Тип Пакетный менеджер
Разработчик Seth Vidal
Написана на Python[1]
Операционная система Linux
Последняя версия 3.4.3 (28 июня 2011)
Репозиторий yum.baseurl.org/gitweb/
github.com/rpm-software-…
Лицензия GNU GPL 2 или выше
Сайт yum.baseurl.org
Логотип Викисклада Медиафайлы на Викискладе

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[англ.] из состава 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 мая 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 декабря 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 июня 2014). Дата обращения: 4 мая 2016.
  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 июля 2013). Дата обращения: 13 июля 2013.
  20. Thank you, Seth Vidal. Red Hat (10 июля 2013). Дата обращения: 13 июля 2013.
  21. Bort, Julie 36-Year-Old Open Source Guru Seth Vidal Has Been Tragically Killed. Business Insider (9 июля 2013). Дата обращения: 13 июля 2013.
  22. "Погиб один из ведущих разработчиков Fedora Linux". CNews. 10.07.2013. Дата обращения: 21 октября 2018. {{cite news}}: Проверьте значение даты: |date= (справка)
  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.
  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, Christine 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. 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. https://www.freedesktop.org/software/PackageKit/

Ссылки