В этой статье мы хотим обсудить, чем отличаются менеджеры пакетов YUM (YellowDog Updater Modified) и DNF (Dandified Yum) (Yum vs DNF).
На данном этапе мы хотим показать вам точное значение этих пакетных менеджеров.
Что такое YUM?
YUM расшифровывается как YellowDog Updater Modified.
Это менеджер пакетов, который можно использовать для следующих процессов управления в Linux-системе на базе RedHat:
- Установка программных пакетов
- Обновление программных пакетов
- Удаление программных пакетов
Что такое DNF?
DNF расшифровывается как Dandified Yum.
Это обновленная версия Yum, которая работает так же, как и Yum.
Он используется для процессов управления.
В чем различия между менеджерами пакетов YUM и DNF?
Через некоторое время менеджер пакетов YUM столкнулся с некоторыми проблемами, такими как:
- Низкая производительность
- повышенное потребление памяти
- Замедление процесса разрешения зависимостей
Поэтому было принято решение о замене Yum на менеджер пакетов DNF в системах Centos 8, AlmaLinux 8 и некоторых системах Linux на базе RedHat.
Для разрешения зависимостей DNF использует “libsolv”, который разработан и поддерживается компанией SUSE для повышения производительности.
Она написана на языках C, C++ и Python.
YUM использует публичный API для разрешения зависимостей. и этот API не полностью документирован. и он написан только на Python.
Здесь задается вопрос, почему вместо устранения проблем был создан новый инструмент.
Почему был создан DNF ?
Было объяснено, что исправление проблем невозможно технически.
Кроме того, команда YUM не готова принять изменения.
Основная проблема заключается в том, что для Yum существует 56 тыс. строк, а для DNF – только 29 тыс. строк, так что исправить это не представляется возможным.
Тем не менее, Yum по-прежнему работает в RedHat Enterprise Linux 6/7 (RHEL), CentOS 6/7 и OEL 6/7.
Он также используется для Centos 8 и Almalinux 8, но вместо YUM рекомендуется использовать менеджер пакетов DNF.
Рассмотрим еще некоторые различия между DNF и YUM.
YUM или DNF
№ | DNF (Dandified yum) | Yum (YellowDog Updater Modified) |
1 | DNF поддерживает различные расширения | YUM поддерживает только расширения на базе Python |
2 | В DNF API хорошо документирован, поэтому легко создавать новые функции | В YUM очень сложно создавать новые функции, поскольку API не документирован должным образом |
3 | DNF использует меньше памяти при синхронизации метаданных хранилищ | YUM использует избыточную память при синхронизации метаданных репозиториев |
4 | dnf update и dnf upgrade равнозначны | но в yum все по-другому |
5 | Зависимости от установки пакета не обновляются в DNF | Компания Yum предложила вариант такого поведения |
6 | Пакеты ядра не защищены dnf | с помощью Yum можно удалить все пакеты ядра, включая тот, который запускается |
7 | При удалении пакета dnf автоматически удаляет все зависимые пакеты, не установленные пользователем в явном виде | YUM этого не делал |
8 | Если включенный репозиторий не отвечает, dnf пропустит его и продолжит операцию с доступными репозиториями | Если репозиторий недоступен, YUM немедленно прекращает работу |
9 | Все показатели хороши с точки зрения использования памяти и разрешения зависимостей метаданных хранилища в DNF | В yum Общая производительность низкая по многим показателям |
10 | По умолчанию через десять минут после загрузки системы обновления сконфигурированных репозиториев проверяются программой dnf ежечасно. Этим действием управляет блок системного таймера с именем “/usr/lib/systemd/system/dnf-makecache.timer” |
Тоже касаемо yum |
Примеры команд менеджера пакетов DNF и Yum
Начнем с одной из первых задач, которую многие выполняют после установки нового дистрибутива Linux, – загрузки обновлений системы.
Загрузка обновлений системы
Чтобы установить обновления системы с помощью DNF, выполните следующую команду:
sudo dnf update -y или sudo dnf upgrade -y
Чтобы установить обновления системы с помощью YUM, выполните следующую команду:
sudo yum update -y
sudo предоставляет вам административный доступ к системе.
Без него команда не выполнится с сообщением об ошибке из-за отсутствия прав.
Команда update загружает метаданные о пакетах из доступных источников программного обеспечения, чтобы компьютер знал, какие версии запрашивать.
Поиск пакета
На данном этапе, если вы хотите найти программу с именем “package”, просто введите:
sudo dnf search package
sudo yum search package
Установка программного обеспечения
Как и при выполнении поиска, команда установки программы с помощью YUM или DNF аналогична.
sudo dnf install package
или
sudo yum install package
Одним из преимуществ DNF и Yum является возможность установки RPM, загруженных вручную из Интернета.
Для этого используется та же команда install, но вместо имени пакета указывается полный путь к RPM.
sudo dnf install /path/to/package.rpm
или
sudo yum install /path/to/package.rpm
Деинсталляция программ
Чтобы удалить программу с помощью DNF, выполните команду:
sudo dnf remove package
Для автоматического удаления ненужных зависимостей используйте:
sudo dnf autoremove
Кроме того, его можно использовать для приготовления YUM.
Наиболее распространенные полезные команды DNF и Yum
№ | Команды Yum и DNF | Пояснения |
1 | dnf install package-name или yum install package-name |
Установка программного пакета |
2 | dnf upgrade package-name или yum upgrade package-name |
Обновление или модернизация программного пакета |
3 | dnf search package-name или yum search package-name |
Он ищет нужный пакет в репозитарии пакетов |
4 | dnf remove package-name или yum remove package-name |
Удаление нужного пакета |
5 | dnf info package-name или yum info package-name |
Он предоставляет информацию о желаемом пакете |
6 | dnf list installed или yum list | less |
Он выдает список установленных пакетов |
Заключение
В этой статье мы попытались объяснить различия между YUM и DNF.
И почему лучше использовать DNF вместо YUM.
Кроме того, вы узнаете о наиболее полезных командах из них.