Dnf — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
м (DNF: дополнение)
 
(не показано 10 промежуточных версий 3 участников)
Строка 1: Строка 1:
 +
{{Таинственные знаки "Доллар" и "Решетка"}}
 +
 
== Введение ==
 
== Введение ==
  
В дистрибутиве ROSA платформы 2021.1 и новее используется пакетный менеджер dnf. Эта статья дает краткое описание основных функций пакетного менеджера dnf.
+
В дистрибутиве ROSA платформы 2021.1 и новее используется пакетный менеджер <span style="color:#0000CD">dnf</span>. В этой статье даётся краткое описание его основных функций.
  
Приведенные команды запускать от root или через sudo:
+
Приведённые команды запускать от '''root''' или через '''sudo''':
  sudo dnf <...>
+
  $ sudo dnf <...>
  
 
== DNF и RPM ==
 
== DNF и RPM ==
  
Управление программными пакетами осуществляется с помощью утилит командной строки rpm и dnf. 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 можно узнать во встроенной справке:
  dnf --help
+
  $ dnf --help
И расширенной документации:
+
И в расширенной документации:
  man dnf
+
  $ 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
  
Пример: установить все пакеты, названия которых начинаются на "locales-":
+
[[Категория:ROSA Server]]
dnf install "locales-*"
+

Текущая версия на 11:09, 12 марта 2023

"$" — символ приглашения, означает что терминал готов принять команду от имени непривилегированного пользователя, т.е. не root.
"#" — означает что команду необходимо выполнять от пользователя root.

Источники: 1, 2


Введение

В дистрибутиве 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