Команда Dnf в Linux

Обновлено: 04.07.2024

DNF (Dandified Yum) – это инструмент управления пакетами в дистрибутивах Linux на основе RPM, таких как RHEL, CentOS, Rocky Linux, OEL и Fedora. Он может устанавливать, обновлять или удалять пакеты программного обеспечения в системе. Он считается версией менеджера пакетов yum следующего поколения. Он призван заменить yum улучшением таких функций, как разрешение зависимостей и использование памяти. Впервые он был представлен в Fedora 18 и стал менеджером пакетов по умолчанию для Fedora, начиная с Fedora 22.

DNF и YUM — обзор

И dnf, и yum используются для установки, удаления или обновления пакетов в системе на основе RPM. DNF — это обновленная замена yum из-за нерешенных проблем в YUM. Проблемы включают низкую производительность, высокое использование памяти и медленное разрешение зависимостей. DNF использует библиотеку libsolv для разрешения зависимостей, тогда как yum использует общедоступный API. dnf написан на C, C++ и Python, что обеспечивает лучшую производительность и меньшее использование памяти. Так как yum написан только на Python, у него низкая производительность.

Вы также можете прочитать: YUM против DNF

Как работает DNF

  • DNF – это инструмент управления пакетами, который использует репозитории для установки, обновления, понижения версии и удаления пакетов.
  • Поэтому у вас должен быть репозиторий, чтобы использовать dnf.
  • По умолчанию dnf использует глобальный файл конфигурации в /etc/dnf/dnf.conf и все файлы репозитория ( .repo ), присутствующие в /etc/yum.repos.d.
  • Файлы .repo включают имя репозитория, путь к репозиторию, проверку gpg и включенный параметр. На основе этого параметра dnf будет запрашивать в репозитории доступные пакеты.
  • Вы также можете настроить собственный репозиторий.

Файл репозитория включает в себя следующее.

Различные примеры использования команды dnf

Большинство команд dnf похожи на команды yum. Для запуска команды dnf требуются привилегии root. Возможно, dnf еще не установлен в вашей системе. Вы можете установить пакет DNF с помощью команды yum.

После этого вы сможете запустить команду dnf в своем терминале. Ниже приведены наиболее часто используемые команды dnf для управления пакетами и их зависимостями в системах на основе RPM.

1. dnf для установки пакета и его зависимостей

Эту команду можно использовать для установки последней версии пакета и его зависимостей.

Пример вывода:

2. dnf для удаления пакета и его зависимостей

Чтобы удалить установленный пакет и его зависимости, вы можете использовать следующую команду.

Пример вывода:

3. Обновите пакет и его зависимости с помощью команды dnf

Эта команда позволяет обновить любые установленные пакеты и их зависимости до последних версий.

Пример вывода:

Эту команду можно использовать без каких-либо аргументов для обновления каждого пакета в системе.

4. dnf для обновления пакета и его зависимостей

Эта команда имеет функцию, аналогичную команде update, которая обновляет пакет и его зависимости до новейшей версии.

Пример вывода:

Использование этой команды без пакета в качестве аргумента обновляет все установленные пакеты в системе.

5. dnf для проверки доступных обновлений для установленных пакетов

Вы можете проверить доступные обновления для установленных пакетов и их зависимостей в вашей системе.

Пример вывода:

25+ практических примеров команды dnf в Linux

6. Список всех пакетов с помощью команды dnf

Эта команда выводит список всех пакетов (установленных и доступных для установки) для дистрибутива Linux на основе RPM.

Пример вывода:

7. dnf для получения списка только установленных пакетов

Чтобы получить список только установленных пакетов в системе, вы можете использовать следующую команду.

Образец вывода:

25+ практических примеров команды dnf в Linux

8. dnf для поиска пакета в доступных репозиториях

Эта команда позволяет искать определенный пакет по слову. Если слово совпадает с названием или кратким описанием пакета, он напечатает результат.

Пример вывода:

25+ практических примеров команды dnf в Linux

9. dnf для получения списка конкретных пакетов

Вы также можете получить список определенного пакета, передав имя пакета в качестве аргумента. Но убедитесь, что у вас есть точное имя пакета, иначе эта команда не будет работать и может вернуть ошибку: нет подходящих пакетов для списка

Пример вывода:

25+ практических примеров команды dnf в Linux

10. Получить информацию о пакете с помощью команды dnf

С помощью этой команды вы можете просмотреть подробную информацию о каждом пакете, доступном в репозиториях. Эта команда ожидает точное имя пакета.

Пример вывода:

25+ практических примеров команды dnf в Linux

11. dnf для переустановки пакета и его зависимостей

Иногда могут возникать ошибки при использовании определенного пакета. Вместо того, чтобы удалять его и устанавливать снова, вы можете напрямую переустановить пакет и его зависимости.

12. Команда dnf для загрузки пакета вместо установки

Вы также можете загрузить пакет вместо его установки в системе. Для этого вы можете использовать параметр --downloadonly и указать каталог загрузки, используя параметр --downloaddir=.

Пример вывода:

25+ практических примеров команды dnf в Linux

13. Список включенных репозиториев с помощью команды dnf

Чтобы распечатать список всех включенных репозиториев, вы можете использовать следующую команду.

Пример вывода:

25+ практических примеров команды dnf в Linux

14. Список отключенных репозиториев с помощью команды dnf

Чтобы получить список всех отключенных репозиториев, вы можете использовать опцию disabled.

Пример вывода:

25+ практических примеров команды dnf в Linux

15. dnf для просмотра списка всех репозиториев

Вы также можете вывести список всех репозиториев, настроенных в вашей системе.

Пример вывода:

25+ практических примеров команды dnf в Linux

16. Включить определенный репозиторий для выполнения во время выполнения с помощью команды dnf

Вы можете установить пакет из определенного репозитория, используя параметр --enablerepo. Он также может позволить отключенному репозиторию установить пакет.

Вы можете отключить все репозитории и использовать только один репозиторий, используя:

Например, я установлю пакет vsftpd, используя только репозиторий appstream, и отключу все остальные репозитории.
Пример вывода:

17. Отключить определенный репозиторий для выполнения во время выполнения с помощью команды dnf

--disablerepo позволяет отключить выполнение репозитория во время выполнения. Это ограничивает dnf для установки пакета из этого репозитория. Если пакет недоступен в других включенных репозиториях, вы не сможете установить пакет.

Например, здесь у меня возникли проблемы с репозиторием appstream, поэтому я временно отключил его для этой команды и использовал другие репозитории для установки пакета. Но вы должны знать, что эта команда будет работать только в том случае, если предоставленный пакет является частью другого репозитория. Если какой-либо из зависимых пакетов является частью отключенного репозитория, установка пакета завершится ошибкой.

Пример вывода:

18. Узнать, какой пакет rpm содержит определенный файл

Эту команду можно использовать, чтобы узнать, какие пакеты содержат определенный файл.

Например, давайте попробуем найти rpm, который предоставляет нам двоичный файл python3:

Пример вывода:

25+ практических примеров команды dnf в Linux

Как видите, он предоставляет нам имя пакета RPM, отвечающего за установку бинарного файла python3. Может быть еще несколько файлов с таким же именем.

Чтобы получить полный список файлов по имени python3, вы можете использовать регулярное выражение с командой dnf.

Пример вывода:

25+ практических примеров команды dnf в Linux

19. Перечислите зависимости пакетов и какие пакеты их предоставляют

Вы можете использовать deplist

команда для вывода списка зависимостей пакета и того, какие пакеты их предоставляют.

Например, чтобы получить список зависимых пакетов, необходимых для установки пакета nmap, мы можем использовать следующую команду:

Пример вывода:

25+ практических примеров команды dnf в Linux

20. Список всех групповых пакетов с помощью команды dnf

Групповой пакет — это набор нескольких пакетов в определенной группе. Вы можете использовать следующую команду, чтобы вывести список всех доступных групп для вашей системы.

25+ практических примеров команды dnf в Linux

Пример вывода:

21. dnf для установки группового пакета

При установке группового пакета будут установлены все пакеты внутри группы. Чтобы установить групповой пакет, вы можете использовать эту команду.

Пример вывода:

22. Команда dnf для удаления группового пакета

При удалении группового пакета все пакеты, принадлежащие этой группе, также будут удалены.

Пример вывода:

23. Обновите групповой пакет с помощью команды dnf

Чтобы обновить установленный групповой пакет в вашей системе, вы можете использовать эту команду.

Пример вывода:

24. Просмотр истории всех команд dnf, выполненных в узле

Эту команду можно использовать для просмотра информации о том, что произошло в прошлом выполнении команды dnf.

Пример вывода:

25+ практических примеров команды dnf в Linux

25. dnf для отмены и повтора изменений

Вы можете отменить и повторить изменения, сделанные выполнением команды dnf. Вам понадобится идентификатор транзакции, который вы можете получить из команды истории.

Чтобы отменить изменение, вы можете использовать:

Пример вывода:

Чтобы повторить изменение, вы можете использовать:

Пример вывода:

26. dnf для отмены всех транзакций после указанной транзакции

Вы также можете использовать команду отката с dnf для отмены всех транзакций после указанных транзакций. Например, если у вас есть 15 транзакций в истории и вы укажете идентификатор транзакции 10, будут отменены все транзакции после 10, т.е. 11, 12, 13, 14, 15.

Вы должны использовать откат dnf очень осторожно, потому что он отменит все транзакции между текущим и предоставленным идентификатором транзакции. В сложных сценариях с несколькими транзакциями команда dnf не сможет выполнить откат.

Например, у меня есть следующая история dnf:

Здесь я установил vsftpd как часть идентификатора 4 и установил whois как часть идентификатора 5, поэтому позвольте мне попытаться откатить транзакцию DNF до идентификатора 3, что означает, что пакеты vsftpd и whois должны быть удалены:

Как и ожидалось, пакеты vsftpd и whois удалены. Кроме того, whois-nls также был удален, поскольку он также был установлен с идентификатором 5 как часть зависимости.

25+ практических примеров команды dnf в Linux

Проверьте новую историю dnf:

27. dnf для очистки всех кешей

Чтобы удалить все кэши, хранящиеся в dnf, вы можете использовать следующую команду.

Пример вывода:

Он также удаляет метаданные репозитория. Из-за чего при следующем запуске команды dnf она загружает все метаданные.

28. Войдите в оболочку dnf с помощью команды dnf

Вы можете использовать интерактивную оболочку dnf, в которой можно выполнять все команды dnf.

Пример вывода:

Заключение

В этой статье мы показали вам различные примеры команд dnf для установки/удаления/обновления пакетов и их зависимостей. Вы также можете получить информацию о пакетах и ​​их зависимостях. dnf — это мощный инструмент для управления пакетами и репозиториями в дистрибутивах Linux на основе RPM.

Dnf Command

Команда DNF (Dandified yum) — это версия нового поколения традиционного диспетчера пакетов YUM для систем на базе RedHat. Это менеджер пакетов по умолчанию для Fedora 22, CentOS8 и RHEL8. Он предназначен для замены YUM. Он выполняет управление пакетами с использованием RPM и libsolv (поддерживается OpenSUSE).

Оглавление

Основное использование команды dnf

Общий синтаксис команды dnf:

Доступные команды включают установку, поиск, запрос и т. д.

аргументами могут быть имя пакета, имя группы или подкоманда(ы), относящиеся к «команде».

Примечание. Для установки и удаления пакетов необходимы права sudo. Поскольку я уже являюсь пользователем root (что не очень хорошая идея, но подходит для демонстрации), я не буду добавлять sudo к какой-либо команде. Но имейте в виду, что вы должны добавлять sudo при установке и удалении пакетов.

Управление пакетами с помощью команды dnf

Теперь посмотрим, как мы можем использовать команду dnf для установки/удаления/запроса пакетов в нашей системе на базе RedHat.

1.Поиск и установка пакетов с помощью dnf

Давайте установим сервер TigerVNC с помощью команды dnf. Но вы можете не знать точного названия пакета. Сначала лучше поискать пакет.

Вы можете использовать команду поиска DNF для поиска пакетов.

Dnf Search

Поиск DNF

Как только вы узнаете точное имя пакета (без части архитектуры, здесь x86_64), вы можете использовать команду install DNF для установки этого пакета.

Dnf Install Tiger

DNF Установить сервер TigerVNC

2. Получение информации о пакете

Чтобы получить дополнительную информацию о пакете, используйте команду info DNF.

Dnf Info

Информация о DNF

3. Список установленных пакетов

Чтобы просмотреть список установленных пакетов, вы можете использовать команду listinstalled DNF.

Dnf List Installed

Список установленных пакетов DNF

В сочетании с командой grep вы можете искать, установлен ли конкретный пакет, следующим образом

Dnf Installed

Проверить DNF, установлен bash или нет

Если это не дало никаких результатов, это означает, что пакет не установлен. В этом случае, если вы хотите установить пакет, используйте поиск dnf, чтобы узнать точное имя пакета, а затем установите пакет dnf.

4. Удалить пакет

Чтобы удалить пакет, используйте команду удаления DNF.

Dnf Remove

Удалить DNF

Чтобы удалить все ненужные пакеты, которые изначально были установлены как зависимости, используйте команду autoremove

Dnf Autotremove

Автоматическое удаление DNF

В моем случае не было ненужных зависимостей. Таким образом, запуск автоматического удаления не дал никакого эффекта.

5. Обновить пакет

Чтобы обновить все пакеты, которые можно обновить, используйте команду обновления

Dnf Upgrade

Обновление DNF

Чтобы обновить определенный пакет, просто добавьте, например, название пакета

Пакет обновления Dnf

Пакет обновления DNF

6. Поиск и установка групп пакетов

Группы пакетов — это просто несколько пакетов под одним именем. Эти группы пакетов могут представлять собой графический интерфейс всего сервера, инструменты безопасности, инструменты администрирования и т. д. Чтобы просмотреть список групп, вы можете использовать команду group list DNF.

Dnf Groups

DNF-группы

Чтобы узнать, какие пакеты находятся в групповом пакете, просто используйте команду group info и укажите имя пакета. Для пакета «Инструменты разработки» введите:

Примечание. Имя группового пакета, состоящее из нескольких слов, необходимо заключить в кавычки (" "). Даже если имя группового пакета состоит из одного слова, рекомендуется использовать кавычки.

Информация о группе Dnf

Информация о группе DNF

Давайте установим пакет Development Tools Group с помощью команды group install.

Dnf Group Install

Установка группы DNF

7. Список доступных или включенных репозиториев

Чтобы получить список всех доступных репозиториев с помощью команды dnf, введите

Dnf Repolist

Доступные репозитории DNF

Чтобы вывести список всех включенных репозиториев, введите

Dnf Repo

Репозитории с поддержкой DNF

8. Просмотр истории установки/удаления пакетов

Иногда полезно просмотреть историю команд DNF, особенно если вы хотите повторить установку в другой системе. Историю можно просмотреть с помощью команды history DNF.

Dnf History

История DNF

9. Список зависимостей пакета

Чтобы получить список зависимостей пакета, используйте команду deplist.

Dnf Deplist

Удаленный список DNF

Заключение

Это руководство было посвящено команде dnf в Linux. Надеюсь, что эта статья помогла вам познакомиться с dnf и вы сможете с легкостью использовать эту команду в будущем. Продолжайте следить за нашим сайтом, так как в будущем мы будем публиковать все больше и больше статей о Linux!

DNF, также известный как Dandified YUM, представляет собой диспетчер пакетов нового поколения для распространения на основе RPM. Впервые он был представлен в Fedora 18 и заменил утилиту YUM в последнем выпуске Fedora 22.

Linux DNF Примеры команд

DNF направлен на устранение узких мест YUM, а именно: производительность, использование памяти, разрешение зависимостей, скорость и множество других факторов. DNF управляет пакетами, используя RPM, libsolv и библиотеку hawkey. Хотя он не устанавливается отдельно в CentOS и RHEL 7, вы можете использовать yum, dnf и использовать его вместе с yum.

Последняя стабильная версия DNF — 1.0 (на момент написания поста), выпущенная 11 мая 2015 г. Она (и все предыдущие версии DNF) в основном написана на Python и выпущена под лицензией GPL v2. .

Установка DNF

DNF недоступен в стандартном репозитории RHEL/CentOS 7. Однако Fedora 22 поставляется с официально реализованным DNF.

Чтобы установить DNF в системах RHEL/CentOS, необходимо сначала установить и включить репозиторий epel-release.

Хотя использование ‘-y’ с yum неэтично, так как рекомендуется видеть, что устанавливается в вашей системе. Однако, если это не имеет большого значения для вас, вы можете использовать ‘-y’ с yum, чтобы установить все автоматически без вмешательства пользователя.

Далее установите пакет DNF с помощью команды yum из репозитория epel-release.

После того, как dnf успешно установлен, пришло время показать вам 27 практических примеров использования команд dnf, которые помогут вам легко и эффективно управлять пакетами в дистрибутиве на основе RPM.

1. Проверить версию DNF

Проверьте версию DNF, установленную в вашей системе.

2. Список включенных репозиториев DNF

Опция «repolist» с командой dnf отобразит все включенные репозитории в вашей системе.

3. Список всех включенных и отключенных репозиториев DNF

Опция «Повторить все» распечатает все включенные/отключенные репозитории в вашей системе.

4. Список всех доступных и установленных пакетов с помощью DNF

Команда «dnf list» выведет список всех доступных пакетов из всех репозиториев и установленных пакетов в вашей системе Linux.

Список всех пакетов, использующих DNF

5. Список всех установленных пакетов с помощью DNF

В то время как команда «dnf list» показывает все доступные/установленные пакеты из всех репозиториев. Однако у вас есть возможность вывести список только установленных пакетов, используя параметр «список установленных», как показано ниже.

Список всех установленных пакетов

6. Список всех доступных пакетов с помощью DNF

Аналогично параметр «список доступных» выводит список всех доступных для установки пакетов из всех включенных репозиториев.

Список доступных пакетов с помощью DNF

7. Поиск пакета с помощью DNF

Если вы не знаете, какой пакет вы хотите установить, в такой ситуации вы можете использовать опцию «поиск» с командой dnf для поиска пакета, соответствующего слову или строке (скажем, nano).

8. Посмотрите, что предоставляет файл/подпакет?

Опция dnf «обеспечивает» поиск имени пакета, который предоставляет определенный файл/подпакет. Например, если вы хотите узнать, что предоставляет ‘/bin/bash’ в вашей системе?

9. Получить сведения о пакете с помощью DNF

Предположим, вы хотите узнать информацию о пакете перед его установкой в ​​системе. Вы можете использовать переключатель «Информация», чтобы получить подробную информацию о пакете (скажем, nano), как показано ниже.

10. Установить пакет с DNF

Чтобы установить пакет с именем nano, просто запустите приведенную ниже команду, она автоматически разрешит и установит все необходимые зависимости для пакета nano.

11. Обновление пакета с помощью DNF

Вы можете обновить только определенный пакет (скажем, systemd) и оставить все в системе нетронутым.

12. Проверить наличие обновлений системы с помощью DNF

Проверяйте обновления для всех системных пакетов, установленных в системе, просто так.

13. Обновите все системные пакеты с помощью DNF

Вы можете обновить всю систему, включая все установленные пакеты, с помощью следующих команд.

14. Удалить/стереть пакет с помощью DNF

Чтобы удалить или стереть любой нежелательный пакет (скажем, nano), вы можете использовать переключатель «удалить» или «стереть» с командой dnf для его удаления.

15. Удаление потерянных пакетов с помощью DNF

Те пакеты, которые были установлены для удовлетворения зависимости, могут быть бесполезны, если они не используются другими приложениями. Чтобы удалить эти потерянные пакеты, выполните приведенную ниже команду.

16. Удаление кэшированных пакетов с помощью DNF

Часто мы сталкиваемся с устаревшими заголовками и незавершенными транзакциями, что приводит к ошибке при выполнении dnf. Мы можем очистить все кэшированные пакеты и заголовки, содержащие информацию об удаленных пакетах, просто выполнив команду.

17. Получить справку по конкретной команде DNF

Вы можете получить помощь по любой конкретной команде dnf (скажем, по очистке), просто выполнив приведенную ниже команду.

18. Список всех команд и параметров DNF

Чтобы просмотреть справку по всем доступным командам и параметрам dnf, просто введите.

19. Посмотреть историю DNF

Вы можете вызвать историю dnf, чтобы просмотреть список уже выполненных команд dnf. Таким образом, вы можете знать, что было установлено/удалено с отметкой времени.

20. Список всех групповых пакетов

Команда «dnf grouplist» выведет все доступные или установленные пакеты, если ничего не указано, выведет список всех известных групп.

21. Установите групповой пакет с помощью DNF

Чтобы установить группу пакетов, связанных вместе как групповой пакет (скажем, Образовательное программное обеспечение), просто так.

22. Обновить групповой пакет

Давайте обновим групповой пакет (скажем, Образовательное ПО), выполнив приведенную ниже команду.

23. Удалить групповой пакет

Мы можем удалить групповой пакет (скажем, Образовательное ПО) как.

24. Установить пакет из определенного репозитория

DNF позволяет установить любой конкретный пакет (скажем, phpmyadmin) из репозитория (epel) так же просто, как

25. Синхронизировать установленные пакеты со стабильной версией

Команда «dnf distro-sync» предоставит необходимые параметры для синхронизации всех установленных пакетов с самой последней стабильной версией, доступной в любом доступном репозитории. Если пакет не выбран, синхронизируются все установленные пакеты.

26. Переустановите пакет

Команда «dnf reinstall nano» переустановит уже установленный пакет (например, nano).

27. Понизить версию пакета

Опция «понижение» понизит названный пакет (скажем, acpid) до более ранней версии, если это возможно.

Пример вывода

Мое наблюдение: DNF не понизил версию пакета, как предполагалось. Об этом также сообщается как об ошибке.

Заключение

DNF — это высшая степень передового менеджера пакетов YUM. Он имеет тенденцию выполнять большую часть обработки автоматически, что, как я полагаю, не оценят многие опытные системные администраторы Linux. Например:

  1. --skip-broken не распознается DNF, и альтернативы нет.
  2. Нет ничего похожего на команду «resolvedep», однако вы можете запустить dnf.
  3. Отсутствует команда deplist для поиска зависимости пакета.
  4. Вы исключаете репозиторий, что означает, что исключение применяется ко всем операциям, в отличие от yum, который исключает эти репозитории только во время установки, обновления и т. д.

Некоторые пользователи Linux недовольны тем, как развивается экосистема Linux. Сначала Systemd удалил систему инициализации v, и теперь DNF заменит YUM раньше в Fedora 22 и позже в RHEL и CentOS.

Что вы думаете? являются дистрибутивами, и вся экосистема Linux не ценит своих пользователей и движется против их воли. Также в ИТ-индустрии часто говорят: «Зачем чинить, если не сломано?», а не сломана ни init System V, ни YUM.

На этом пока все. Пожалуйста, дайте мне знать ваши ценные мысли в комментариях ниже. Ставьте лайки, делитесь нами и помогайте нам распространяться.

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Поддержите нас

Мы благодарны за вашу бесконечную поддержку.

Похожие записи

DistroBox — запуск любого дистрибутива Linux в терминале

 Установите PowerShell в Fedora Linux

Запись файлов на CD/DVD в Linux

Отключить SSH Корневой вход

Установить пароль GRUB

Установить сервер Samba в RHEL

17 мыслей о «27 командах DNF (Fork of Yum) для управления пакетами RPM в Linux»

Сначала я установил epel-release.

Но на самом первом шаге dnf --version возникает следующая ошибка:

Я использую CentOS 7.4.

Может ли dnf перечислить файлы пакета без его установки?
В debian apt-file может это сделать:
$ apt-file list iozone3
iozone3: /usr/bin/fileop
iozone3: /usr/bin/iozone
…[пропустить]…

Я согласен с @Robert: я считаю, что systemd поможет унифицировать и упростить администрирование Linux, повысить безопасность и создать возможности для новых функций, таких как облегченная виртуализация процессов на системном уровне nspawn (возможно, не идеальное описание, но проверьте это в любом случае).

Давай, давай, давай, DoNut Fork!

не удается установить f77
после установки Fedora 22, пожалуйста, дайте мне правильные инструкции

Удалось установить? я планирую установить f90.. это проблема?

Linux нужно двигаться вперед. Fedora и RHEL обновляют эти системы, поскольку в прошлом они использовали Linux.

SystemD на самом деле упрощает задачи администратора и снижает вероятность поломки из-за обновлений пакетов. Настройки, установленные администраторами, находятся в другом месте, чем настройки, поставляемые в пакетах. Он также обеспечивает много обратной связи в выводе состояния службы, в том числе о том, какие файлы конфигурации используются. Кроме того, systemd делает много вещей, которых не делал традиционный init, управляемый событиями, параллельный запуск и фактический мониторинг служб, которыми он управляет, вместо запуска sysV.

Короче говоря, systemd — это изменение, которое было крайне необходимо для модернизации и упрощения Linux, а также для упрощения администрирования Linux. Это системный менеджер, а не просто система инициализации, поэтому это довольно всеобъемлющее изменение.

DNF, я думаю, то же самое. Я читал там, где фундаментальные проблемы в разрешении зависимостей в YUM, и я знаю, что сломал Linux обновлениями.

Я предлагаю потратить немного времени, чтобы прочитать и попробовать, прежде чем отказываться от обновлений. Я знаю, что не был так увлечен systemd, пока не узнал о нем немного больше

Кошка упала в коробку

Dandified yum, более известный как DNF, представляет собой менеджер пакетов программного обеспечения для дистрибутивов Linux на основе RPM, который устанавливает, обновляет и удаляет пакеты. Впервые он был представлен в Fedora 18 в тестируемом состоянии (т. е. технической предварительной версии), но начиная с Fedora 22 он стал менеджером пакетов Fedora по умолчанию.

Дополнительные ресурсы по Linux

  • Вычисление зависимостей на основе современной технологии решения зависимостей.
  • Оптимизированы операции, интенсивно использующие память.
  • Возможность запуска на Python 2 и Python 3.
  • Доступна полная документация по API Python

DNF использует библиотеки hawkey, которые разрешают зависимости RPM для выполнения запросов на клиентских компьютерах.Они построены на основе libsolv, решателя зависимостей пакетов, который использует алгоритм выполнимости. Вы можете найти более подробную информацию об алгоритме в репозитории libsolv GitHub.

Команды CLI, отличающиеся в DNF и yum

Ниже приведены некоторые изменения в интерфейсе командной строки (CLI) yum, которые вы найдете в DNF.

обновление dnf или обновление dnf: Выполнение обновления dnf или обновления dnf имеет одинаковый эффект в системе: оба обновляют установленные пакеты. Однако обновление dnf предпочтительнее, так как оно работает точно так же, как обновление yum --obsoletes.

resolvedep: этой команды нет в DNF. Вместо этого выполните команду dnf, чтобы узнать, какой пакет предоставляет конкретный файл.

deplist: команда Yum deplist, которая выводит список зависимостей RPM, была удалена из DNF, поскольку для решения запроса зависимостей она использует алгоритм решения зависимостей пакетов.

Удалить днф

: Вы должны указать конкретные версии того, что хотите удалить. Например, dnf remove kernel удалит все пакеты с именем «ядро», поэтому обязательно используйте что-то вроде dnf remove kernel-4.16.x.

Откат истории dnf: эта проверка, которая отменяет транзакции после указанной вами, была удалена, поскольку не все возможные изменения в инструменте базы данных RPM сохраняются в истории транзакций.

--skip-broken: эта команда установки, проверяющая пакеты на наличие проблем с зависимостями, запускается в yum с параметром --skip-broken. Однако теперь он является частью обновления dnf по умолчанию, поэтому в нем больше нет необходимости.

-b, --best: эти переключатели выбирают лучшие доступные версии пакетов в транзакциях. Во время обновления dnf, которое по умолчанию пропускает обновления, которые не могут быть установлены по причинам зависимости, этот переключатель заставляет DNF рассматривать только самые последние пакеты. Используйте обновление dnf --best.

--allowerasing: позволяет удалять установленные пакеты для устранения зависимостей. Эту опцию можно использовать как альтернативу команде yum swap X Y, в которой удаляемые пакеты явно не определены.

Например: dnf --allowerasing install Y.

--enableplugin: этот переключатель не распознан и отключен.

Автоматический DNF

Инструмент DNF Automatic представляет собой альтернативу CLI для обновления dnf. Он может выполняться автоматически и регулярно из системных таймеров, заданий cron и т. д. для автоматического уведомления, загрузки или обновления.

Для начала установите dnf-automatic rpm и включите системный таймер (dnf-automatic.timer). Он ведет себя так, как указано в файле конфигурации по умолчанию (это /etc/dnf/automatic.conf).

Другие таймеры, которые имеют приоритет над конфигурацией по умолчанию, перечислены ниже. Выберите тот, который соответствует вашим системным требованиям.

  • dnf-automatic-notifyonly.timer: уведомляет о доступных обновлениях
  • dnf-automatic-download.timer: загружает пакеты, но не устанавливает их
  • dnf-automatic-install.timer: загружает и устанавливает обновления

Основные команды DNF, полезные для управления пакетами

: список всех или определенных пакетов; в этом примере перечислены RPM-пакеты ядра, доступные в системе.

: когда вы ищете определенный пакет через DNF, он будет искать точное совпадение, а также все поиски по подстановочным знакам, доступные в репозитории.

: Опция --recent выводит все недавно добавленные пакеты в систему. Другие параметры списка: --extras, --upgrades и --obsoletes.

Обзор

Это лишь небольшая часть функций, изменений и команд DNF. Полную информацию о интерфейсе командной строки DNF, новых подключаемых модулях и API-интерфейсах ловушек см. в руководстве по DNF.

Читайте также: