26 примеров команд DNF в Fedora / CentOS / RHEL
DNF или Dandified YUM — это форк пакетного менеджера YUM. Он был представлен в Fedora 18 и Fedora 22. Теперь он стал менеджером пакетов по умолчанию для обработки пакетов RPM в CentOS 8, RHEL 8 и Fedora.
DNF решает все проблемы, связанные с yum, такие как низкая производительность, высокое использование памяти, медленное разрешение зависимостей. DNF можно назвать следующей основной версией диспетчера пакетов YUM. На данный момент наиболее стабильной версией DNF является версия 2.6.3.
В этом руководстве мы обсудим команды DNF, используемые для управления пакетами. Эта статья послужит шпаргалкой по DNF. Итак, начнем …..
Команда DNF
Синтаксис использования команды DNF очень похож на использование YUM, поэтому вы найдете много общего между этими двумя командами.
Пример: 1) Список включенных репозиториев
Чтобы вывести список всех включенных репозиториев в системе, запустите
[ ~]$ sudo dnf repolist [sudo] password for infoit: repo id repo name status *epel Extra Packages for Enterprise Linux 7 - x86_64 11,989 *fedora Fedora 26 - x86_64 53,912 *updates Fedora 26 - x86_64 - Updates 9,405 virtualbox Fedora 26 - x86_64 - VirtualBox 10 [ ~]$
Пример: 2) Список всех репозиториев (как включенных, так и отключенных)
Если нам нужно увидеть все репозитории, которые включены или отключены, нам нужно запустить следующие
[ ~]$ sudo dnf repolist all
Пример: 3) Установка пакета
Как и yum, мы используем параметр install , за которым следует имя пакета с dnf для установки. Предположим, мы хотим установить пакет веб-сервера (httpd)
[ ~]$ sudo dnf install httpd
Пример: 4) Удаление пакета
Чтобы удалить пакет, выполните из терминала следующее:
[ ~]$ sudo dnf remove httpd or [ ~]$ sudo dnf erase httpd
Вывод приведенной выше команды будет примерно таким:
Пример: 5) Обновить пакет
Выполните следующую команду, чтобы обновить один пакет в системе,
Синтаксис: dnf update {pkg-name}
[ ~]$ sudo dnf update filezilla
Пример: 6) Проверить наличие полного обновления системы
Для общесистемной проверки обновлений выполните следующую команду:
[ ~]$ sudo dnf check-update
Пример: 7) Обновите все системные пакеты.
Чтобы обновить все системные пакеты, запустите следующее
[ ~]$ sudo dnf upgrade
Пример: 8) Список всех групповых пакетов
Используйте следующее, чтобы перечислить все групповые пакеты
[ ~]$ sudo dnf grouplist Last metadata expiration check: 1:40:19 ago on Tue 10 Oct 2017 10:08:39 AM IST. Available Environment Groups: Fedora Custom Operating System Minimal Install Fedora Server Edition Fedora Workstation Fedora Cloud Server KDE Plasma Workspaces Xfce Desktop LXDE Desktop Hawaii Desktop LXQt Desktop Cinnamon Desktop MATE Desktop Sugar Desktop Environment Development and Creative Workstation Web Server Infrastructure Server Basic Desktop Installed Groups: LibreOffice Available Groups: 3D Printing Administration Tools Ansible node Audio Production …………………
Пример: 9) Установка групповых пакетов
Подобные пакеты сгруппированы вместе и могут быть установлены одной командой, а не отдельными командами. Чтобы установить группу, запустите
[ ~]$ sudo dnf groupinstall "Development Tools"
Пример: 10) Удаление групповых пакетов
Чтобы удалить всю группу пакетов из системы, выполните следующую команду dnf:
Синтаксис: dnf groupremove ‘имя_группы’
[ ~]$ sudo dnf groupremove "Development Tools"
Мы также можем использовать groupupdate для обновления групповых пакетов.
Пример: 11) Поиск пакетов
Чтобы найти конкретный пакет в репозиториях, выполните
Синтаксис: dnf search {package_name}
Предположим, я хочу найти пакет net-tools
[ ~]$ sudo dnf search net-tools =========== Name Exactly Matched: net-tools ========= net-tools.x86_64 : Basic networking tools [ ~]$
Пример: 12) Загрузить (не устанавливать) пакет
Могут быть сценарии, в которых нам нужно загрузить пакеты, но мы не хотим их устанавливать. Используйте следующую команду для загрузки пакета, такого как samba
Синтаксис: dnf download имя_пакета
[ ~]$ sudo dnf download samba samba-4.6.8-0.fc26.x86_64.rpm 139 kB/s | 636 kB 00:04 [ ~]$
Пример: 13) Показать все доступные пакеты
Чтобы получить список всех доступных пакетов из репозиториев, откройте терминал и запустите под командой dnf
[ ~]$ dnf list available | more
Пример: 14) Показать только установленные пакеты
Теперь, если нам нужен только список установленных пакетов в системе, мы можем получить его, выполнив следующую команду:
[ ~]$ dnf list installed
Пример: 15) Показать все установленные и доступные пакеты
Чтобы получить список всех пакетов, то есть как установленных, так и доступных, выполните следующую команду
[ ~]$ dnf list
Пример: 16) Включить репо для установки
Чтобы использовать конкретный репозиторий для установки пакета, запустите
[ ~]$ sudo dnf install --enablerepo=epel mysql Extra Packages for Enterprise Linux 7 - x86_64 3.9 MB/s | 13 MB 00:03 Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================= Installing: mariadb x86_64 3:10.1.26-2.fc26 updates 6.4 M Installing dependencies: mariadb-common x86_64 3:10.1.26-2.fc26 updates 100 k mariadb-config x86_64 3:10.1.26-2.fc26 updates 33 k mariadb-libs x86_64 3:10.1.26-2.fc26 updates 663 k Transaction Summary ================================================================================= Total download size: 7.2 M Installed size: 44 M Is this ok [y/N]: y
Пример: 17) Проверьте, какой пакет предоставляет требуемую функцию.
Если мы хотим знать, какой пакет отвечает за получение определенной функциональности, например, нам нужно знать имя пакета, связанного с ‘crontab’ или с какой-либо другой командой, то мы можем использовать опцию dnf command ‘ provides ‘ следующим образом ,
[ ~]$ sudo dnf provides crontab cronie-1.5.1-5.fc26.x86_64 : Cron daemon for executing programs at set times Repo : @System cronie-1.5.1-5.fc26.x86_64 : Cron daemon for executing programs at set times Repo : fedora [ ~]$
То же самое можно сделать с файлом, мы также можем использовать ту же команду с местоположением файла, чтобы получить имя пакета, с которым связан файл,
[]$ sudo dnf provides /var/www/html
Пример: 18) Просмотр информации о пакете
Чтобы получить подробную информацию о конкретном пакете, выполните
[~]$ dnf info cronie Installed Packages Name : cronie Version : 1.5.1 Release : 5.fc26 Arch : x86_64 Size : 236 k Source : cronie-1.5.1-5.fc26.src.rpm Repo : @System From repo : anaconda Summary : Cron daemon for executing programs at set times URL : https://fedorahosted.org/cronie License : MIT and BSD and ISC and GPLv2+ Description : Cronie contains the standard UNIX daemon crond that runs / specified programs at : scheduled times and related tools. It is a fork of the / original vixie-cron and : has security and configuration enhancements like the / ability to use pam and : SELinux. [ ~]$
Пример: 19) Создание кеша
Хотя кеш создается автоматически с течением времени, у нас также есть возможность вручную создать кеш, чтобы будущие действия выполнялись быстро и быстро. Чтобы создать кеш вручную, выполните
[ ~]$ sudo time dnf makecache Last metadata expiration check: 0:04:41 ago on Thu 12 Oct 2017 09:53:00 AM IST. Metadata cache created. 0.86user 0.12system 0:01.04elapsed 95%CPU (0avgtext+0avgdata 106872maxresident)k 0inputs+1192outputs (0major+39606minor)pagefaults 0swaps [~]$
Пример: 20) Удалить кеш
Чтобы удалить все кэшированные данные dnf, выполните следующие команды
[~]$ sudo dnf clean all 34 files removed [~]$
Пример: 21) Проверить историю транзакций
Чтобы проверить все транзакции, которые были выполнены с помощью команды DNF, выполните следующие команды
[~]$ sudo dnf history
Он создаст список всех транзакций в том порядке, в котором они произошли, с соответствующим номером. Мы можем использовать этот номер, чтобы получить подробную информацию об этой транзакции,
[~]$ sudo dnf history info 5
Журналы, связанные с установкой, удалением или обновлениями, хранятся в файле журнала /var/log/dnf.log. Используя команду dnf history, мы также можем откатить обновления системы.
Пример: 22) Удаление сиротских пакетов
Сиротские пакеты — это те пакеты, которые когда-то были установлены для удовлетворения зависимости для какого-то другого пакета, но теперь не требуются. Чтобы удалить такие пакеты, запустите
[ ~]$ sudo dnf autoremove
Пример: 23) Синхронизируйте все пакеты с последними стабильными выпусками
Выполните следующую команду, чтобы синхронизировать все пакеты с последними стабильными выпусками,
[ ~]$ sudo dnf distro-sync
Если нам нужно синхронизировать только один пакет, укажите это package_name в конце, иначе все пакеты будут синхронизированы.
Пример: 24) Переустановите пакет
Чтобы переустановить пакет, при необходимости выполните следующую команду:
[~]$ sudo dnf reinstall postfix Dependencies resolved. =========================================================================== Package Arch Version Repository Size =========================================================================== Reinstalling: postfix x86_64 2:3.2.2-1.fc26 fedora 1.4 M Transaction Summary =========================================================================== Total download size: 1.4 M Is this ok [y/N]: y
Пример: 25) Обновление до определенной версии
С DNF также возможно обновить пакет rpm до определенной версии, для этого выполните следующую команду:
[ ~]$ sudo dnf upgrade-to httpd-2.4.27-3.fc26
Пример: 26) Получить список всех команд и опций DNF
Чтобы получить список всех доступных опций, которые можно использовать с DNF, запустите
[ ~]$ dnf help
Это был наш полный учебник для менеджера пакетов DNF с примерами. Пожалуйста, оставляйте любые вопросы или вопросы, которые у вас есть по этому руководству, в комментариях ниже.