dnf – Управляет пакетами с помощью менеджера пакетов dnf
Описание
- Устанавливает, обновляет, удаляет и перечисляет пакеты и группы с помощью менеджера пакетов dnf.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- python-dnf
- для параметра autoremove требуется dnf >= 2.0.1”
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_downgrade boolean добавлен в 2.7 |
| Указывает, разрешено ли понижение версии указанного пакета и его версии, если уже установлена более новая версия. Обратите внимание, что установка allow_downgrade=True может привести к неидемпотентному поведению модуля. В результате задачи может получиться набор пакетов, не соответствующий полному списку указанных пакетов для установки (потому что зависимости между пониженным пакетом и другими пакетами могут вызвать изменения в пакетах, которые были в предыдущей транзакции). |
| autoremove boolean добавлен в 2.4 |
| Если yes, удаляет все пакеты-листья из системы, которые изначально были установлены как зависимости пользовательских пакетов, но больше не требуются ни одним из таких пакетов. Должен использоваться отдельно или когда состояние отсутствует |
| bugfix boolean добавлен в 2.7 |
| Если установлено yes, и state=latest, то устанавливаются только обновления, помеченные как связанные с исправлениями ошибок. |
| conf_file - | Файл удаленного конфигурации dnf, используемый для транзакции. | |
| disable_excludes - добавлен в 2.7 | Отключить исключения, определённые в файлах конфигурации DNF. Если установлено all, отключает все исключения.Если установлено main, отключает исключения, определённые в [main] в dnf.conf.Если установлено repoid, отключает исключения, определённые для данного идентификатора репозитория. | |
| disable_gpg_check boolean |
| Отключать ли проверку GPG подписей устанавливаемых пакетов. Имеет значение только если состояние present или latest. Это настройка влияет на пакеты, устанавливаемые из репозитория, а также на «локальные» пакеты, устанавливаемые из файловой системы или URL. |
| disable_plugin - добавлен в 2.7 |
Имя плагина, который необходимо отключить для операции установки/обновления. Отключенные плагины не сохранятся после транзакции. | |
| disablerepo - |
Идентификатор репозитория для отключения на операции установки/обновления. Эти репозитории не сохранятся после транзакции. При указании нескольких репозиториев разделяйте их запятыми. | |
| download_dir string добавлен в 2.8 | Указывает альтернативную директорию для хранения пакетов. Имеет значение только при указании download_only. | |
| download_only boolean добавлен в 2.7 |
| Только загрузить пакеты, не устанавливать их. |
| enable_plugin - добавлен в 2.7 |
Имя плагина, который необходимо включить для операции установки/обновления. Включенный плагин не сохранится после транзакции. | |
| enablerepo - |
Идентификатор репозитория для включения на операции установки/обновления. Эти репозитории не сохранятся после транзакции. При указании нескольких репозиториев разделяйте их запятыми. | |
| exclude - добавлен в 2.7 | Имя(а) пакета(ов) для исключения при state=present или latest. Это может быть список или строка, разделённая запятыми. | |
| install_repoquery boolean добавлен в 2.7 |
| Это фактически бесполезно в DNF, так как это не требуется с DNF, но это принятый параметр для соответствия/совместимости функций с модулем yum. |
| install_weak_deps boolean добавлен в 2.8 |
| Также установит все пакеты, связанные слабой зависимостью. |
| installroot - | По умолчанию: "/" | Указывает альтернативный installroot, относительно которого будут устанавливаться все пакеты. |
| list - | Различные (неидемпотентные) команды для использования с /usr/bin/ansible и не с playbooks. См. примеры. | |
| lock_timeout integer добавлен в 2.8 | По умолчанию: 30 | Время ожидания освобождения файла блокировки dnf. |
| name list / elements=string / обязательно | Имя пакета или спецификатор пакета с версией, например name-1.0. При использовании state=latest, это может быть «*», что означает выполнение команды: dnf -y update. Вы также можете передать URL или локальный путь к файлу rpm. Для работы с несколькими пакетами можно использовать запятую для разделения или список пакетов.псевдонимы: pkg | |
| releasever - добавлен в 2.6 | Указывает альтернативную версию выпуска, из которой будут устанавливаться все пакеты. | |
| security boolean добавлен в 2.7 |
| Если установлено yes, и state=latest, то устанавливаются только обновления, помеченные как связанные с безопасностью. |
| skip_broken boolean добавлен в 2.7 |
| Пропускать пакеты с повреждёнными зависимостями(devsolve) и вызывающие проблемы. |
| state - |
| Устанавливать ( present, latest) или удалять (absent) пакет.По умолчанию None, однако фактически действие по умолчанию present, если для этого модуля включена опция autoremove, тогда absent подразумевается. |
| update_cache boolean добавлен в 2.7 |
| Вынудить dnf проверить, не устарел ли кэш, и перескачать его при необходимости. Имеет значение только если состояние присутствует или последняя версия. псевдонимы: expire-cache |
| update_only boolean добавлен в 2.7 |
| При использовании последней версии, обновлять только установленные пакеты. Не устанавливать новые пакеты. Имеет значение только если состояние последняя версия
|
| validate_certs boolean добавлено в 2.7 |
| Это применимо только при использовании https-url в качестве источника rpm. Например, для localinstall. Если установлено значение no, сертификаты SSL не будут проверены.Это значение должно быть установлено только на сайтах, находящихся под вашим контролем, с использованием самозаверенных сертификатов, так как это позволяет избежать проверки сайта-источника. |
Примечания
Примечание
- При использовании с
loop:, каждый пакет будет обрабатываться индивидуально. Гораздо эффективнее передать список напрямую в опциюname. - Удаление групп не работает, если группа была установлена с помощью Ansible, поскольку API upstream dnf не правильно отмечает группы как установленные, поэтому при удалении модуль не может определить, что группа установлена (https://bugzilla.redhat.com/show_bug.cgi?id=1620324)
Примеры
- name: install the latest version of Apache
dnf:
name: httpd
state: latest
- name: install the latest version of Apache and MariaDB
dnf:
name:
- httpd
- mariadb-server
state: latest
- name: remove the Apache package
dnf:
name: httpd
state: absent
- name: install the latest version of Apache from the testing repo
dnf:
name: httpd
enablerepo: testing
state: present
- name: upgrade all packages
dnf:
name: "*"
state: latest
- name: install the nginx rpm from a remote repo
dnf:
name: 'http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm'
state: present
- name: install nginx rpm from a local file
dnf:
name: /usr/local/src/nginx-release-centos-6-0.el6.ngx.noarch.rpm
state: present
- name: install the 'Development tools' package group
dnf:
name: '@Development tools'
state: present
- name: Autoremove unneeded packages installed as dependencies
dnf:
autoremove: yes
- name: Uninstall httpd but keep its dependencies
dnf:
name: httpd
state: absent
autoremove: no
- name: install a modularity appstream with defined stream and profile
dnf:
name: '@postgresql:9.6/client'
state: present
- name: install a modularity appstream with defined stream
dnf:
name: '@postgresql:9.6'
state: present
- name: install a modularity appstream with defined profile
dnf:
name: '@postgresql/client'
state: present
Статус
- Для этого модуля гарантированы изменения интерфейса, совместимые с предыдущими версиями. [stableinterface]
- Этот модуль поддерживается командой Ansible Core. [core]
Поддержка Red Hat
Дополнительную информацию о поддержке этого модуля Red Hat можно найти в этой статье базы знаний Red Hat.
Авторы
- Игорь Гнатенко (@ignatenkobrain) <i.gnatenko.brain@gmail.com>
- Cristian van Ee (@DJMuggs) <cristian at cvee.org>
- Berend De Schouwer (@berenddeschouwer)
- Adam Miller (@maxamillion) <admiller@redhat.com>
Подсказка
Если вы обнаружите какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/dnf_module.html