Dnf — различия между версиями
(Новая страница: «== Введение == В дистрибутиве ROSA платформы 2021.1 и новее используется пакетный менеджер dnf.…») |
Noname (обсуждение | вклад) м (→DNF: дополнение) |
||
(не показано 11 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
+ | {{Таинственные знаки "Доллар" и "Решетка"}} | ||
+ | |||
== Введение == | == Введение == | ||
− | В дистрибутиве ROSA платформы 2021.1 и новее используется пакетный менеджер dnf. | + | В дистрибутиве ROSA платформы 2021.1 и новее используется пакетный менеджер <span style="color:#0000CD">dnf</span>. В этой статье даётся краткое описание его основных функций. |
− | + | Приведённые команды запускать от '''root''' или через '''sudo''': | |
− | sudo dnf <...> | + | $ sudo dnf <...> |
== DNF и RPM == | == DNF и RPM == | ||
− | Управление программными пакетами осуществляется с помощью утилит командной строки rpm и dnf. RPM является "низкоуровневым" пакетным менеджером, производящим установку, удаление и обновление пакетов | + | Управление программными пакетами осуществляется с помощью утилит командной строки <span style="color:#0000FF">rpm</span> и <span style="color:#0000FF">dnf</span>. RPM является "низкоуровневым" пакетным менеджером, производящим установку, удаление и обновление пакетов, DNF "высокоуровневым" пакетным менеджером, в задачи которого входит разрешение зависимостей между пакетами, их скачивание и установка с использованием "низкоуровневого" RPM. |
== DNF == | == DNF == | ||
Строка 60: | Строка 62: | ||
|- | |- | ||
| repolist | | repolist | ||
− | | Вывод списка | + | | Вывод списка включённых репозиториев |
|- | |- | ||
| repolist all | | repolist all | ||
− | | Вывод списка репозиториев | + | | Вывод списка всех подключённых репозиториев |
|- | |- | ||
| history | | history | ||
| Дает информацию о выполненных командах, о датах и времени их выполнения, о числе затронутых пакетов, о том, были ли эти транзакции успешными или же были прерваны, и была ли изменена база данных RPM в промежуток между транзакциями. | | Дает информацию о выполненных командах, о датах и времени их выполнения, о числе затронутых пакетов, о том, были ли эти транзакции успешными или же были прерваны, и была ли изменена база данных RPM в промежуток между транзакциями. | ||
+ | |- | ||
+ | | distro-sync | ||
+ | | По мере необходимости обновляет, понижает версию или сохраняет выбранные установленные пакеты в соответствии с последней версией, доступной в любом включенном репозитории. Если пакет не указан, учитываются все установленные пакеты. | ||
|} | |} | ||
Пример установки пакета mc: | Пример установки пакета mc: | ||
− | dnf install mc | + | $ sudo dnf install mc |
+ | |||
+ | Подробнее о работе dnf можно узнать во встроенной справке: | ||
+ | $ dnf --help | ||
+ | И в расширенной документации: | ||
+ | $ man dnf | ||
+ | |||
=== Регулярные выражения === | === Регулярные выражения === | ||
− | Все команды | + | Регулярные выражения (regexp или regex) — это механизм поиска и замены с помощью шаблонов-символов. Все команды DNF предоставляют возможность поиска и фильтрации результата с помощью добавления одного или нескольких шаблонов выражений в качестве аргумента. |
+ | <br /> | ||
+ | Шаблоны выражений содержат один или несколько символов подстановки — символ « '''*''' » расширяет поиск до соответствия любому поднабору знаков, а « '''?''' » до соответствия любому одиночному символу. Чтобы команда всегда отрабатывала корректно, искомое выражение должно быть в прямых одинарных или двойных кавычках. | ||
+ | |||
+ | $ dnf repoquery 'gea*' | ||
+ | |||
+ | Покажет все доступные в репозитории пакеты имена которых начинаются на "gea": | ||
+ | * geany-0:1.38-1.x86_64 | ||
+ | ............................... | ||
+ | * geany-plugins-0:1.38-4.x86_64 | ||
+ | |||
+ | $ dnf repoquery "gea??" | ||
+ | |||
+ | Покажет все пакеты имена которых начинаются на "gea" плюс ещё любых два символа: | ||
+ | * gea<span style="color:#00FF00">ny</span>-0:1.38-1.x86_64 | ||
+ | * gea<span style="color:#00FFFF">ry</span>-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 | ||
+ | |||
+ | |||
+ | $ dnf rq --whatprovides libfontconfig.so.1 | ||
+ | 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 rq -l zip | ||
+ | |||
+ | |||
+ | === Подключить тестовые репозитории === | ||
+ | |||
+ | $ sudo dnf install rosa-repos-testing | ||
+ | |||
+ | |||
+ | === Подключить контейнер и обновить пакет из него === | ||
+ | |||
+ | $ sudo dnf --repofrompath name,url update pkg | ||
+ | |||
+ | === Показать зависимости пакета === | ||
+ | |||
+ | $ dnf repoquery --requires --resolve pkg | ||
+ | $ yum deplist pkg | ||
− | + | [[Категория:ROSA Server]] | |
− | + |
Текущая версия на 11:09, 12 марта 2023
Содержание
Введение
В дистрибутиве 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
$ dnf rq --whatprovides libfontconfig.so.1 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 rq -l zip
Подключить тестовые репозитории
$ sudo dnf install rosa-repos-testing
Подключить контейнер и обновить пакет из него
$ sudo dnf --repofrompath name,url update pkg
Показать зависимости пакета
$ dnf repoquery --requires --resolve pkg $ yum deplist pkg