Spec-Zone.ru › Ansible

Модуль 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

Альтернативный каталог кэша пакетов, передаваемый как --cachedir всем командам pacman.

Используется только в том случае, если также указан root.

config

путь

добавлено в community.general 12.6.0

Путь к альтернативному файлу конфигурации pacman, передаваемый как --config всем командам pacman.

executable

строка

добавлено в community.general 3.1.0

Путь к используемому исполняемому файлу. Это может быть pacman или совместимый с pacman помощник AUR.

К сожалению, совместимость с pacman определена недостаточно чётко. В частности, этот модуль активно использует директиву --print-format, которая, как известно, не реализована некоторыми помощниками AUR (в частности, yay).

Имейте в виду, что помощники AUR могут вести себя непредсказуемо, поэтому их использование не рекомендуется.

По умолчанию: "pacman"

extra_args

строка

Дополнительный параметр, передаваемый pacman при обеспечении состояния state.

По умолчанию: ""

force

логический

При удалении пакетов принудительно удалять их без каких-либо проверок. То же, что и extra_args="--nodeps --nodeps".

В сочетании с update_cache принудительно обновлять все базы данных пакетов. То же, что и update_cache_extra_args="--refresh --refresh".

Варианты:

  • false ← (по умолчанию)
  • true

name

псевдонимы: package, pkg

список / элементы=строка

Имя или список имён пакетов либо файлов для установки, обновления или удаления. Нельзя использовать вместе с upgrade.

reason

строка

добавлено в community.general 5.4.0

Причина установки, задаваемая для пакетов.

Варианты:

  • "dependency"
  • "explicit"

reason_for

строка

добавлено в community.general 5.4.0

Задать причину установки для пакетов all или только для пакетов new.

В случае state=latest уже установленные пакеты, обновлённые до более новой версии, не считаются new.

Варианты:

  • "all"
  • "new" ← (по умолчанию)

remove_nosave

логический

добавлено в community.general 4.6.0

При удалении пакетов не сохранять изменённые файлы конфигурации как файлы .pacsave (передаёт pacman параметр --nosave).

Варианты:

  • false ← (по умолчанию)
  • true

root

путь

добавлено в community.general 12.6.0

Альтернативный корневой каталог установки, передаваемый как --root всем командам pacman.

Подходит для установки пакетов в chroot или в новую корневую систему, аналогично тому, как работает pacstrap.

state

строка

Следует ли установить (present или installed, latest) либо удалить (absent или removed) пакет.

present и installed просто обеспечивают установку нужного пакета.

latest обновляет указанный пакет, если он не имеет последнюю доступную версию.

absent и removed удаляют указанный пакет.

Варианты:

  • "absent"
  • "installed"
  • "latest"
  • "present" ← (по умолчанию)
  • "removed"

update_cache

логический

Следует ли обновить основные списки пакетов.

Это можно выполнить в рамках установки пакета или отдельным шагом.

Если параметр не указан, по умолчанию используется false.

Обратите внимание: до версии community.general 5.0.0 этот параметр влиял на состояние модуля changed только в том случае, если перед ним не были указаны name и upgrade. Примеры показывают, как сохранить прежнее поведение.

Варианты:

  • false
  • true

update_cache_extra_args

строка

Дополнительный параметр, передаваемый pacman при обеспечении состояния update_cache.

По умолчанию: ""

upgrade

логический

Следует ли обновить всю систему. Нельзя использовать вместе с name.

Если параметр не указан, по умолчанию используется false.

Варианты:

  • false
  • true

upgrade_extra_args

строка

Дополнительный параметр, передаваемый pacman при обеспечении состояния upgrade.

По умолчанию: ""

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может работать в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевой объект.

diff_mode

Поддержка: полная

В режиме diff возвращает сведения об изменениях (или о том, что, возможно, требуется изменить в check_mode).

Примечания

Примечание

  • При использовании 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

Статус изменения pacman -Sy.

Полезно, если name или upgrade=true указаны вместе с update_cache=true.

Возвращается: при успешном выполнении, если update_cache=true

Пример: false

packages

список / элементы=строка

Список изменённых пакетов.

До community.general 4.5.0 это значение возвращалось только при условии upgrade=true. В community.general 4.5.0 оно иногда не возвращалось, если список пакетов был пуст. Начиная с community.general 4.6.0 оно возвращается всегда, если указан name или upgrade=true.

Возвращается: при успешном выполнении, если указан name или upgrade=true

Пример: ["package", "other-package"]

Авторы

  • Indrajit Raychaudhuri (@indrajitr)
  • Aaron Bull Schaefer (@elasticdog)
  • Maxime de Roucy (@tchernomax)
  • Jean Raby (@jraby)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Задать вопрос
  • Сообщить об ошибке
  • Предложить новую функцию
  • Связь с разработчиками

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API