Команда dnf в linux

Обновлено: 03.07.2024

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

В Fedora это менеджер пакетов по умолчанию, начиная с Fedora 22. В RHEL 8.x теперь это менеджер пакетов по умолчанию.

DNF обеспечивает безопасное управление пакетами, включая проверку подписи GPG для пакетов, подписанных GPG. DNF не будет устанавливать пакеты, не подписанные правильным ключом для этого репозитория.

Для обратной совместимости в RHEL 8.x также есть команда YUM, хотя это ссылка на DNF.

Почему DNF?

Управление пакетами с DNF

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

Поиск пакета

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

Например, чтобы найти пакет Nmap :

Листинг пакетов

Чтобы увидеть список всех установленных и доступных пакетов:

Чтобы просмотреть все установленные пакеты:

$ sudo dnf list installed

Чтобы перечислить все доступные пакеты:

Например, чтобы перечислить все доступные пакеты MySQL:

Отображение информации о пакете

Чтобы отобразить информацию о пакете:

Установка пакетов

Установка одного пакета

Чтобы установить один пакет и все его неустановленные зависимости:

Например, чтобы установить Nginx :

Это установит Nginx и все его необходимые зависимости.

Установка нескольких пакетов

Вы также можете установить несколько пакетов, добавив в эту команду имена пакетов. Например, чтобы установить Nginx, PHP и MySQL-сервер, введите:

Установка пакета по его двоичному имени файла

Если вы знаете имя устанавливаемого двоичного файла, но не знаете имя пакета, даже этого достаточно для установки соответствующего пакета.

Например, если вы введете:

DNF ищет и находит пакет, который предоставляет /usr/sbin/ named, и предлагает вам установить его.

Определение того, какому пакету принадлежит файл

Если вы знаете имя файла и хотите узнать, какой пакет предоставляет его (установлен или нет), используйте:

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

Удаление пакета

Чтобы удалить пакет:

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

Управление группами пакетов

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

Чтобы перечислить все группы пакетов:

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

Чтобы вывести список всех пакетов в группе:

Например, чтобы просмотреть пакеты в группе «Средства безопасности»:

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

При установке группы будут установлены все пакеты в группе. Для установки группы пакетов используйте:

Например, чтобы установить группу «Сетевые серверы»:

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

Чтобы удалить группу пакетов:

Итак, чтобы удалить группу пакетов «Средства безопасности»:

Обновление пакетов

Обновление всех пакетов

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

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

Обновление одного пакета

Чтобы обновить один пакет, запустите:

Например, чтобы обновить пакет python:

Заключение

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

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, установленную в вашей системе, выполните команду:

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

Параметр «repolist» с помощью команды dnf отобразит все включённые репозитории в вашей системе.


3. Как вывести все включённые и отключённые репозитории DNF

Параметр «repolist all» распечатает все включённые и отключённые репозитории в вашей системе.


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

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

5. Как узнать все установленные пакеты с помощью DNF

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

6. Как узнать все доступные пакеты с помощью DNF

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

7. Как найти пакет с помощью DNF

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


8. Как узнать, какому пакету принадлежит файл?

Параметр dnf «provides» находит имя пакета, который содержит конкретный файл или подпакет. Например, если вы хотите узнать, какой пакет в вашей системе создал файл /bin/bash:


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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

18. Как узнать все команды и параметры DNF

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

19. Как посмотреть историю команд DNF

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Команда dnf предназначена для работы с одноименной утилитой, которая используется для управлении пакетами программного обеспечения в дистрибутивах RHEL, CentOS, а также Fedora Workstation (в первых двух дистрибутивах она пока не используется по умолчанию). Данная утилита пришла на смену широко известной утилите yum из-за проблем с производительностью и потреблением памяти последней. На сегодняшний день утилита dnf обладает всеми возможностями утилиты yum и является ее полноценной заменой, менее требовательной к ресурсам системы.

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

Базовый синтаксис команды выглядит следующим образом:

Утилита поддерживает большое количество команд и параметров. Чаще всего используются такие параметры, как параметр --skip-broken, позволяющий пропускать пакеты с проблемами зависимостей, параметр --allowerasing, позволяющий удалять пакеты для разрешения зависимостей, параметр --cacheonly (или -C), позволяющий использовать кэшированные метаданные без их обновления, параметры --assumeyes (или -y) и --assumeno, позволяющие автоматически отвечать утвердительно или отрицательно на все вопросы утилиты, параметры --enablerepo и --disablerepo, позволяющие активировать и деактивировать указанный репозиторий, а также параметр --exclude (или -x), позволяющий исключить из рассмотрения пакет с указанным именем. Основными командами являются:

Автоматическая загрузка обновлений

В дистрибутиве Fedora Workstation dnf используется также для автоматической загрузки обновлений системы. Если вам не нужна эта функция (например, вы привыкли устанавливать обновления вручную или используете сетевое соединение с ограничением по трафику), вы можете деактивировать ее следующим образом.

В первую очередь следует деактивировать соответствующие службу и таймер systemd:

Далее нужно отключить механизм автоматической загрузки обновлений на уровне службы packagekitd:

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

Примеры использования

Установка пакета программного обеспечения

Для установки пакета программного обеспечения достаточно просто использовать команду install:

Удаление пакета программного обеспечения

Удаление пакета программного обеспечения осуществляется с помощью команды remove:

Поиск пакета программного обеспечения

Поиск пакета программного обеспечения осуществляется с помощью команды search. Также вместе с ней может использоваться параметр -C для отказа от обновления метаданных:

Обновление пакетов программного обеспечения

Для установки всех обновлений системы достаточно использовать команду update:

infoitcomua

DNF решает все проблемы, связанные с yum, такие как низкая производительность, высокое использование памяти, медленное разрешение зависимостей. DNF можно назвать следующей основной версией диспетчера пакетов YUM. На данный момент наиболее стабильной версией DNF является версия 2.6.3.

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

Команда DNF

Синтаксис использования команды DNF очень похож на использование YUM, поэтому вы найдете много общего между этими двумя командами.

Пример: 1) Список включенных репозиториев

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

Пример: 2) Список всех репозиториев (как включенных, так и отключенных)

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

26 примеров команд DNF в Fedora

Пример: 3) Установка пакета

26 примеров команд DNF в Fedora

Пример: 4) Удаление пакета

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

Вывод приведенной выше команды будет примерно таким:

26 примеров команд DNF в Fedora

Пример: 5) Обновить пакет

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

Синтаксис: dnf update

Пример: 6) Проверить наличие полного обновления системы

Для общесистемной проверки обновлений выполните следующую команду:

26 примеров команд DNF в Fedora

Пример: 7) Обновите все системные пакеты.

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

26 примеров команд DNF в Fedora

Пример: 8) Список всех групповых пакетов

Используйте следующее, чтобы перечислить все групповые пакеты

Пример: 9) Установка групповых пакетов

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

26 примеров команд DNF в Fedora

Пример: 10) Удаление групповых пакетов

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

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

Пример: 11) Поиск пакетов

Чтобы найти конкретный пакет в репозиториях, выполните

Синтаксис: dnf search

Предположим, я хочу найти пакет net-tools

Пример: 12) Загрузить (не устанавливать) пакет

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

Синтаксис: dnf download имя_пакета

Пример: 13) Показать все доступные пакеты

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

26 примеров команд DNF в Fedora

Пример: 14) Показать только установленные пакеты

Теперь, если нам нужен только список установленных пакетов в системе, мы можем получить его, выполнив следующую команду:

26 примеров команд DNF в Fedora

Пример: 15) Показать все установленные и доступные пакеты

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

Пример: 16) Включить репо для установки

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

Пример: 17) Проверьте, какой пакет предоставляет требуемую функцию.

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

Пример: 18) Просмотр информации о пакете

Чтобы получить подробную информацию о конкретном пакете, выполните

Пример: 19) Создание кеша

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

Пример: 20) Удалить кеш

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

Пример: 21) Проверить историю транзакций

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

26 примеров команд DNF в Fedora

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

26 примеров команд DNF в Fedora

Журналы, связанные с установкой, удалением или обновлениями, хранятся в файле журнала /var/log/dnf.log. Используя команду dnf history, мы также можем откатить обновления системы.

Пример: 22) Удаление сиротских пакетов

26 примеров команд DNF в Fedora

Пример: 23) Синхронизируйте все пакеты с последними стабильными выпусками

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

26 примеров команд DNF в Fedora

Если нам нужно синхронизировать только один пакет, укажите это package_name в конце, иначе все пакеты будут синхронизированы.

Пример: 24) Переустановите пакет

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

Пример: 25) Обновление до определенной версии

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

Пример: 26) Получить список всех команд и опций DNF

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

26 примеров команд DNF в Fedora

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


Установка пакетов

$ sudo dnf install package

Удаление пакета

Чтобы удалить пакет, мы можем использовать опцию « delete » или « erase»,

$ sudo dnf delete package

$ sudo dnf erase package

Обновление Пакета

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

$ sudo dnf update package

Полное обновление системы

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

$ sudo dnf check-update

Все системные пакеты Обновление

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

$ sudo dnf upgrade

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

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

$ sudo dnf repolist

Перечислите все репозитории

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

$ sudo dnf repolist all

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

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

$ sudo dnf –enablerepo = repo-name install package

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

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

$ sudo dnf grouplist

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

Удаление групповых пакетов

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

$ sudo groupremove ‘group_name’

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

Если пакет требует переустановки, используйте следующую команду:

$ sudo dnf reinstall package

Обновление до определенной версии

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

$ sudo dnf upgrade-to package_version

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

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

$ sudo dnf list available

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

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

$ sudo dnf list installed

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

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

$ sudo dnf list

Поиск пакетов

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

$ sudo dnf search package

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

$ sudo dnf download package

Проверка имени пакета, чтобы получить необходимую функциональность

$ sudo dnf provides funtionality_name

$ sudo dnf provides /file_path

Например,

Проверьте информацию о пакете

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

sudo dnf info package

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

Чтобы получить список всей истории DNF, т. Е. Установки / удаления / обновления всех пакетов и т. Д., Выполните следующую команду:

$ sudo dnf history

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

$ sudo dnf history info 13

Синхронизировать все пакеты с последними стабильными выпусками

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

$ sudo dnf distro -s sync package

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

$ sudo dnf distro-sync

Перечислить все опции для команды DNF

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

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