Dnf
В дистрибутиве ROSA платформы 2021.1 и новее используется пакетный менеджер dnf. В этой статье даётся краткое описание его основных функций.
Исользование
Приведённые команды запускать от root или через sudo:
sudo dnf <...>
DNF и RPM
Управление программными пакетами осуществляется с помощью утилит командной строки rpm и dnf. RPM является "низкоуровневым" пакетным менеджером, производящим установку, удаление и обновление пакетов, DNF "высокоуровневым" пакетным менеджером, в задачи которого входит разрешение зависимостей между пакетами, их скачивание и установка с использованием "низкоуровневого" RPM.
DNF
Основные операции с пакетами
Синтаксис консольной утилиты dnf имеет следующий вид:
dnf <опции> <команда> <пакет>
| Команда | Описание | 
|---|---|
| install | Установка пакета | 
| reinstall | Переустановка пакета | 
| check-update | Проверка наличия обновлений | 
| update | Обновление пакета | 
| remove | Удаление пакета | 
| list | Вывод имен всех доступных и установленных пакетов | 
| search | Поиск пакета | 
| info | Вывод информации о пакете | 
| groupinstall | Установка группы пакетов | 
| groupupdate | Обновление группы пакетов | 
| groupremove | Удаление группы пакетов | 
| grouplist | Вывод информации о группах | 
| repolist | Вывод списка включённых репозиториев | 
| repolist all | Вывод списка всех подключённых репозиториев | 
| history | Дает информацию о выполненных командах, о датах и времени их выполнения, о числе затронутых пакетов, о том, были ли эти транзакции успешными или же были прерваны, и была ли изменена база данных RPM в промежуток между транзакциями. | 
| distro-sync | По мере необходимости обновляет, понижает версию или сохраняет выбранные установленные пакеты в соответствии с последней версией, доступной в любом включенном репозитории. Если пакет не указан, учитываются все установленные пакеты. | 
Пример установки пакета mc:
sudo dnf install mc
Подробнее о работе dnf можно узнать во встроенной справке:
dnf --help
И в расширенной документации:
man dnf
Регулярные выражения
Регулярные выражения (regexp или regex) — это механизм поиска и замены с помощью шаблонов-символов. Все команды DNF предоставляют возможность поиска и фильтрации результата с помощью добавления одного или нескольких шаблонов выражений в качестве аргумента. Шаблоны выражений содержат один или несколько символов подстановки — символ « * » расширяет поиск до соответствия любому поднабору знаков, а « ? » до соответствия любому одиночному символу. Чтобы команда всегда отрабатывала корректно, искомое выражение должно быть в прямых одинарных или двойных кавычках.
dnf repoquery 'gea*'
Покажет все доступные в репозитории пакеты имена которых начинаются на "gea":
geany-0:1.38-1.x86_64 ............................... geany-plugins-0:1.38-4.x86_64
dnf repoquery "gea??"
Покажет все пакеты имена которых начинаются на "gea" плюс ещё любых два символа:
geany-0:1.38-1.x86_64 geary-0:40.0-10.x86_64
Найти пакет по имени файла
dnf rq --whatprovides /usr/bin/gzip
... gzip-0:1.12-1.x86_64
dnf provides /usr/bin/gzip
... gzip-1.12-1.x86_64 : The GNU data compression program Репозиторий : mirror-rosa-x86_64-main Совпадения с: Имя файла : /usr/bin/gzip </per> dnf rq --whatprovides libfontconfig.so.1 <pre> libfontconfig1-0:2.13.94-3.i686
dnf provides libfontconfig.so.1
libfontconfig1-2.13.94-3.i686 : Font configuration and customization library Репозиторий : @System Совпадения с: Предоставьте : libfontconfig.so.1 ...
Обновить метаданные репозитория и поставить обновления
dnf --refresh update
Обновить только метаданные репозитория
dnf makecache
Удалить все кешированные данные dnf
dnf clean all
Показать список файлов в пакете
dnf rq -l zip
Подключить тестовые репозитории
sudo dnf install rosa-repos-testing
Подключить контейнер и обновить пакет из него
sudo dnf --repofrompath name,url update pkg
Показать зависимости пакета
dnf repoquery --requires --resolve pkg