DNF также известный как Dandified YUM – это следующее поколение менеджера пакетов для дистрибутивов, основанных на RPM. Он был впервые представлен в Fedora 18 и заменил утилиту YUM в последних выпусках Fedora 22.
DNF стремится улучшить узкие места YUM, такие как производительность, использование памяти, разрешение зависимостей, скорость и многие другие факторы. DNF выполняет управление пакетами с использованием RPM, библиотеки libsolv и hawkey. Хотя он не устанавливается по умолчанию в CentOS и RHEL 7, вы можете использовать yum, dnf и использовать его рядом с yum.
Вы можете ознакомиться с дополнительной информацией о DNF здесь:
Самый последний стабильный выпуск DNF – это 1.0 (на момент написания поста), который был выпущен 11 мая 2015 года. Он (и все предыдущие версии DNF) написаны в основном на Python и выпущены под лицензией GPL v2.
Установка DNF
DNF не доступен в стандартном репозитории RHEL/CentOS 7. Однако Fedora 22 поставляется с официально реализованным DNF.
Для установки DNF на системах RHEL/CentOS необходимо сначала установить и включить репозиторий epel-release.
# yum install epel-release OR # yum install epel-release -y
Хотя использование ключа ‘-y‘ с yum некорректно, так как рекомендуется видеть, что устанавливается в вашей системе. Однако, если вам это не важно, вы можете использовать ‘-y’ с yum для автоматической установки всего без участия пользователя.
Затем установите пакет DNF с помощью команды yum из репозитория epel-release.
# yum install dnf
После успешной установки dnf, пришло время показать вам 27 практических примеров использования команд dnf с примерами, которые помогут вам управлять пакетами в дистрибутиве на основе RPM легко и эффективно.
1. Проверьте версию DNF
Проверьте версию установленного DNF на вашей системе.
# dnf --version
2. Список включенных репозиториев DNF
Опция ‘repolist‘ с командой dnf покажет все включенные репозитории в вашей системе.
# dnf repolist
3. Список всех включенных и отключенных репозиториев DNF
Опция ‘repolist all‘ выведет все включенные/отключенные репозитории в вашей системе.
# dnf repolist all
4. Список всех доступных и установленных пакетов с использованием DNF
Команда “dnf list” выведет все доступные пакеты из всех репозиториев и установленные пакеты на вашей системе Linux.
# dnf list
5. Список всех установленных пакетов с использованием DNF
Команда “dnf list” показывает все доступные/установленные пакеты из всех репозиториев. Однако у вас есть возможность перечислить только установленные пакеты, используя опцию “list installed“, как показано ниже.
# dnf list installed
6. Перечислите все доступные пакеты с помощью DNF
Аналогично, опция “list available” перечислит все пакеты, доступные для установки из всех включенных репозиториев.
# dnf list available
7. Поиск пакета с помощью DNF
Если у вас нет представления о пакете, который вы хотите установить, в такой ситуации вы можете использовать опцию ‘search’ с командой dnf для поиска пакета, который соответствует слову или строке (скажем, nano).
# dnf search nano
8. Посмотреть, что предоставляет файл/подпакет?
Опция dnf “предоставляет” находит имя пакета, предоставляющего конкретный файл/подпакет. Например, если вы хотите узнать, что предоставляет ‘/bin/bash’ на вашей системе?
# dnf provides /bin/bash
9. Получить сведения о пакете с помощью DNF
Допустим, вы хотите узнать информацию о пакете перед его установкой на систему, вы можете использовать переключатель “info”, чтобы получить подробную информацию о пакете (скажем, nano), как показано ниже.
# dnf info nano
10. Установить пакет с помощью DNF
Чтобы установить пакет с именем nano, просто выполните нижеприведенную команду, она автоматически разрешит и установит все необходимые зависимости для пакета nano.
# dnf install nano
11. Обновление пакета с использованием DNF
Вы можете обновить только конкретный пакет (например, systemd) и оставить все остальное на системе нетронутым.
# dnf update systemd
12. Проверка обновлений системы с использованием DNF
Проверьте обновления для всех пакетов системы, установленных в систему, просто как.
# dnf check-update
13. Обновление всех системных пакетов с использованием DNF
Вы можете обновить всю систему, включая все установленные пакеты, с помощью следующих команд.
# dnf update OR # dnf upgrade
14. Удаление пакета с использованием DNF
Чтобы удалить или стереть любой ненужный пакет (например, nano), вы можете использовать переключатель «remove» или «erase» с командой dnf для его удаления.
# dnf remove nano OR # dnf erase nano
15. Удаление сиротских пакетов с использованием DNF
Те пакеты, которые были установлены для удовлетворения зависимостей, могут быть бесполезны, если не используются другими приложениями. Чтобы удалить эти сиротские пакеты, выполните следующую команду.
# dnf autoremove
16. Удаление кэшированных пакетов с использованием DNF
A lot of time we encounter out-of-date headers and unfinished transactions which results into error while executing dnf. We may clean all the cached packages and headers containing remote package information simply by executing.
# dnf clean all
17. Получение справки о конкретной команде DNF
Вы можете получить справку по любой конкретной команде dnf (например, clean) просто выполнением следующей команды.
# dnf help clean
18. Перечисление всех команд и параметров DNF
Чтобы получить список всех доступных команд и параметров dnf, просто введите.
# dnf help
19. Просмотр истории DNF
Вы можете вызвать историю dnf, чтобы посмотреть список уже выполненных команд dnf. Таким образом, вы можете быть в курсе того, что было установлено/удалено с отметкой времени.
# dnf history
20. Перечислить все групповые пакеты
Команда “dnf grouplist” выведет все доступные или установленные пакеты, если ничего не указано, она перечислит все известные группы.
# dnf grouplist
21. Установка группового пакета с помощью DNF
Для установки группы пакетов, объединенных в групповой пакет (скажем, Образовательное программное обеспечение), просто как.
# dnf groupinstall 'Educational Software'
22. Обновление группового пакета
Давайте обновим групповой пакет (скажем, Образовательное программное обеспечение) выполнив следующую команду.
# dnf groupupdate 'Educational Software'
23. Удаление группового пакета
Мы можем удалить групповой пакет (скажем, Образовательное программное обеспечение) как.
# dnf groupremove 'Educational Software'
24. Установка пакета из конкретного репозитория
DNF позволяет установить любой конкретный пакет (скажем, phpmyadmin) из репо (epel) просто как,
# dnf --enablerepo=epel install phpmyadmin
25. Синхронизация установленных пакетов с стабильным релизом
Команда “dnf distro-sync” предоставит необходимые параметры для синхронизации всех установленных пакетов с самой последней стабильной версией, доступной из любого включенного репозитория. Если не выбран ни один пакет, все установленные пакеты синхронизируются.
# dnf distro-sync
26. Повторная установка пакета
Команда “dnf reinstall nano” переустановит уже установленный пакет (скажем, nano).
# dnf reinstall nano
27. Понижение версии пакета
Опция “downgrade” понизит версию названного пакета (скажем, acpid) до более низкой версии, если это возможно.
# dnf downgrade acpid
Пример вывода
Using metadata from Wed May 20 12:44:59 2015 No match for available package: acpid-2.0.19-5.el7.x86_64 Error: Nothing to do.
Мое наблюдение: DNF не откатывает пакет, как это должно было быть. Это также было сообщено как ошибка.
Вывод
DNF – это передовой менеджер пакетов YUM. Он склонен выполнять много операций автоматически, что, как я считаю, не будет похвалено многими опытными администраторами Linux. В качестве примера:
--skip-broken
не распознается DNF, и нет альтернативы.- Нет команды ‘resolvedep‘, однако можно использовать dnf provides.
- Нет команды ‘deplist‘ для поиска зависимости пакета.
- Если вы исключаете репозиторий, исключение применяется ко всем операциям, в отличие от yum, который исключает эти репозитории только во время установки и обновлений и т. д.
Многие пользователи Linux не довольны тем, как развивается экосистема Linux. Сначала Systemd удалил систему инициализации V, а теперь DNF скоро заменит YUM в Fedora 22, а затем в RHEL и CentOS.
Что вы думаете? Не ценят ли дистрибутивы и вся экосистема Linux своих пользователей и движутся против их воли? Также часто говорят в IT-индустрии: “Почему чинить, если не сломано?”, а ни система инициализации V, ни YUM не сломаны.
На этом пока все. Пожалуйста, делитесь своими ценными мыслями в комментариях ниже. Лайк и поделитесь с нами, помогите нам распространить информацию.
Source:
https://www.tecmint.com/dnf-commands-for-fedora-rpm-package-management/