ZaLinux.ru

DNF — Утилита управления пакетами нового поколения для дистрибутивов на основе RPM

DNF была создана на замену утилиты управления пакетами «YUM» в дистрибутивах на основе Red Hat, а именно RHEL, CentOS и Fedora и т. д., то есть всех тех, которые используют менеджер пакетов RPM.

YUM (сокращение от Yellowdog Updater, Modified) — это бесплатная утилита с открытым исходным кодом на основе командной строки, выпущенная под лицензией GNU General Public License и в основном написанная на языке программирования Python. YUM был разработан для управления и обновления RedHat Linux в Университете Дьюка, позже он получил широкое признание и стал менеджером пакетов RedHat Enterprise Linux, Fedora, CentOS и других дистрибутивов Linux на основе RPM. Его часто называют «Your Package Manager» («вашим менеджером пакетов»), что неофициально часто используют профессионалы Linux.

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

Идея заменить Yum на DNF

Алеш Козумплик, разработчик проекта DNF, является сотрудником RedHat. Он говорит:

«Впервые в 2009 году, работая над «Anaconda» — установщиком системы, он получил представление о работе с Linux. Он хотел работать над совершенно другим проектом, который позволил бы ему изучить инструмент для работы с пакетами в Fedora».

Недостатки Yum, которые привели к основанию DNF:

  • Разрешение зависимостей YUM является кошмаром и было разрешено в DNF с помощью библиотеки SUSE libsolv и оболочки Python вместе с C Hawkey.
  • У YUM нет документированного API.
  • Создавать новые функции сложно.
  • Нет поддержки других расширений, кроме Python.
  • Меньшие затраты памяти и меньшая автоматическая синхронизация метаданных — процесс, требующий много времени.

Алеш Козумплик говорит, что у него нет другого выбора, кроме как разветвить YUM и разработать DNF. Сопровождающий пакета YUM не был готов реализовать эти изменения. YUM имеет около 59000 LOC, тогда как DNF имеет 29000 LOC (строк кода).

DNF впервые показала своё присутствие в Fedora 18. Fedora 20 была первым дистрибутивом Linux, который предлагал пользователям использовать функциональность DNF вместо YUM.

Расположение файла конфигурации dnf по умолчанию: /etc/dnf/dnf.conf.

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 «provides» находит имя пакета, который содержит конкретный файл или подпакет. Например, если вы хотите узнать, какой пакет в вашей системе создал файл /bin/bash:

dnf provides /bin/bash

9. Как получить подробную информацию о пакете с помощью DNF

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

dnf info nano

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

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

dnf install ПАКЕТ

Например:

sudo dnf install nano

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

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

sudo dnf update systemd

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

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

dnf check-update

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

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

sudo dnf update

ИЛИ:

sudo dnf upgrade

14. Как удалить пакет с помощью DNF

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

sudo dnf remove nano

ИЛИ:

sudo dnf erase nano

15. Как удалить ненужные пакеты с помощью DNF

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

sudo dnf autoremove

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

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

sudo 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

Чтобы установить группу пакетов, объединённых вместе в виде группового пакета (скажем, Сетевые серверы), выполните следующую команду:

sudo dnf groupinstall 'Сетевые серверы'

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

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

sudo dnf groupupdate 'Сетевые серверы'

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

Мы можем удалить групповой пакет (скажем, Сетевые серверы) следующим образом:

sudo dnf groupremove 'Сетевые серверы'

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

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

sudo dnf --enablerepo=epel install phpmyadmin

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

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

sudo dnf distro-sync

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

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

sudo dnf reinstall nano

27. Понижение версии пакета

Параметр «downgrade» понижает версию указанного пакета (скажем, acpid) до более низкой версии, если это возможно.

sudo dnf downgrade acpid

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *