Модуль community.general.pacman — управление пакетами с помощью pacman
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.general.
Чтобы использовать её в плейбуке, укажите: community.general.pacman.
Краткое описание
- Управление пакетами с помощью пакетного менеджера pacman, используемого в Arch Linux и его вариантах.
Параметры
Параметр | Комментарии |
|---|---|
cachedir путь добавлено в community.general 12.6.0 | Альтернативный каталог кэша пакетов, передаваемый как Используется только в том случае, если также указан |
config путь добавлено в community.general 12.6.0 | Путь к альтернативному файлу конфигурации pacman, передаваемый как |
executable строка добавлено в community.general 3.1.0 | Путь к используемому исполняемому файлу. Это может быть К сожалению, совместимость с pacman определена недостаточно чётко. В частности, этот модуль активно использует директиву Имейте в виду, что помощники AUR могут вести себя непредсказуемо, поэтому их использование не рекомендуется. По умолчанию: |
extra_args строка | Дополнительный параметр, передаваемый pacman при обеспечении состояния По умолчанию: |
force логический | При удалении пакетов принудительно удалять их без каких-либо проверок. То же, что и В сочетании с Варианты:
|
name псевдонимы: package, pkg список / элементы=строка | Имя или список имён пакетов либо файлов для установки, обновления или удаления. Нельзя использовать вместе с |
reason строка добавлено в community.general 5.4.0 | Причина установки, задаваемая для пакетов. Варианты:
|
reason_for строка добавлено в community.general 5.4.0 | Задать причину установки для пакетов В случае Варианты:
|
remove_nosave логический добавлено в community.general 4.6.0 | При удалении пакетов не сохранять изменённые файлы конфигурации как файлы Варианты:
|
root путь добавлено в community.general 12.6.0 | Альтернативный корневой каталог установки, передаваемый как Подходит для установки пакетов в chroot или в новую корневую систему, аналогично тому, как работает |
state строка | Следует ли установить (
Варианты:
|
update_cache логический | Следует ли обновить основные списки пакетов. Это можно выполнить в рамках установки пакета или отдельным шагом. Если параметр не указан, по умолчанию используется Обратите внимание: до версии community.general 5.0.0 этот параметр влиял на состояние модуля Варианты:
|
update_cache_extra_args строка | Дополнительный параметр, передаваемый pacman при обеспечении состояния По умолчанию: |
upgrade логический | Следует ли обновить всю систему. Нельзя использовать вместе с Если параметр не указан, по умолчанию используется Варианты:
|
upgrade_extra_args строка | Дополнительный параметр, передаваемый pacman при обеспечении состояния По умолчанию: |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: полная | В режиме diff возвращает сведения об изменениях (или о том, что, возможно, требуется изменить в |
Примечания
Примечание
- При использовании
loop:каждый пакет обрабатывается отдельно; гораздо эффективнее передать список напрямую параметруname. - Для использования помощника AUR (параметр
executable) может потребоваться предварительно выполнить несколько дополнительных шагов настройки. Например, может понадобиться выделенный пользователь для сборки с разрешениями на установку пакетов. - В тестах при использовании
yayв качестве параметраexecutableмодулю не удалось установить пакеты AUR, и возникла ошибка:error: target not found: <pkg>. Это вызвано несовместимостью yay с аргументами, передаваемыми модулем. Подробности см. в описании ошибки yay #1744. - При успешном выполнении, если это необходимо, возвращаются стандартные значения
stdoutиstderr; такая возможность появилась в community.general 4.1.0.
Примеры
- name: Install package foo from repo
community.general.pacman:
name: foo
state: present
- name: Install package bar from file
community.general.pacman:
name: ~/bar-1.0-1-any.pkg.tar.xz
state: present
- name: Install package foo from repo and bar from file
community.general.pacman:
name:
- foo
- ~/bar-1.0-1-any.pkg.tar.xz
state: present
- name: Install package from AUR using a Pacman compatible AUR helper
community.general.pacman:
name: foo
state: present
executable: yay
extra_args: --builddir /var/cache/yay
- name: Upgrade package foo
# The 'changed' state of this call will indicate whether the cache was
# updated *or* whether foo was installed/upgraded.
community.general.pacman:
name: foo
state: latest
update_cache: true
- name: Remove packages foo and bar
community.general.pacman:
name:
- foo
- bar
state: absent
- name: Recursively remove package baz
community.general.pacman:
name: baz
state: absent
extra_args: --recursive
- name: Run the equivalent of "pacman -Sy" as a separate step
community.general.pacman:
update_cache: true
- name: Run the equivalent of "pacman -Su" as a separate step
community.general.pacman:
upgrade: true
- name: Run the equivalent of "pacman -Syu" as a separate step
# Since community.general 5.0.0 the 'changed' state of this call
# will be 'true' in case the cache was updated, or when a package
# was updated.
#
# The previous behavior was to only indicate whether something was
# upgraded. To keep the old behavior, add the following to the task:
#
# register: result
# changed_when: result.packages | length > 0
community.general.pacman:
update_cache: true
upgrade: true
- name: Run the equivalent of "pacman -Rdd", force remove package baz
community.general.pacman:
name: baz
state: absent
force: true
- name: Install foo as dependency and leave reason untouched if already installed
community.general.pacman:
name: foo
state: present
reason: dependency
reason_for: new
- name: Run the equivalent of "pacman -S --asexplicit", mark foo as explicit and install it if not present
community.general.pacman:
name: foo
state: present
reason: explicit
reason_for: all
- name: Install packages into a new root (similar to pacstrap)
community.general.pacman:
name:
- base
- base-devel
- python
state: present
root: /mnt
cachedir: /mnt/var/cache/pacman/pkg
config: /path/to/another/pacman.conf
update_cache: true
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже приведены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
cache_updated логический добавлено в community.general 4.6.0 | Статус изменения Полезно, если Возвращается: при успешном выполнении, если Пример: |
packages список / элементы=строка | Список изменённых пакетов. До community.general 4.5.0 это значение возвращалось только при условии Возвращается: при успешном выполнении, если указан Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/pacman_module.html