Поиск по сайту:

27 команд «DNF» (форк Yum) для управления пакетами RPM в Linux


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

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

Вы можете прочитать больше о DNF здесь:

  1. Причины замены Yum на DNF

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

Установка ДНФ

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.

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

dnf repolist all

4. Перечислите все доступные и установленные пакеты, используя DNF.

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

dnf list

5. Перечислите все установленные пакеты, используя DNF.

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

dnf list installed

6. Перечислите все доступные пакеты, используя DNF.

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

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.

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

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. Понизить версию пакета

Опция «понижение версии» понизит версию именованного пакета (скажем, 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. В качестве примера:

  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 не сломаны.

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