community.general.pacman 模块 – 使用 *pacman* 管理软件包
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible
软件包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.general
。
要在剧本中使用它,请指定: community.general.pacman
。
摘要
使用 Arch Linux 及其变体使用的 *pacman* 软件包管理器管理软件包。
参数
参数 |
注释 |
---|---|
要使用的二进制文件的路径。这可以是 不幸的是,Pacman 的兼容性定义不明确,特别是,此模块大量使用了 请注意,AUR 助手可能会出现意外行为,因此不推荐使用。 默认值: |
|
在强制执行 默认值: |
|
删除软件包时,强制删除它们,无需任何检查。与 当与 选项
|
|
要安装、升级或删除的软件包或文件的名称或名称列表。不能与 |
|
要为软件包设置的安装原因。 选项
|
|
删除软件包时,不要将修改的配置文件保存为 选项
|
|
是安装(
选项
|
|
在强制执行 默认值: |
|
在强制执行 默认值: |
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 |
|
支持:完全支持 |
在差异模式下,将返回有关已更改内容(或在 |
备注
注意
当与
loop:
一起使用时,每个包都将被单独处理,直接将列表传递给name
选项效率更高。要使用 AUR 辅助工具(
executable
选项),可能需要事先进行一些额外的设置步骤。例如,可能需要一个具有安装软件包权限的专用构建用户。在测试中,当使用
yay
作为executable
选项时,模块安装 AUR 包失败,并出现错误:error: target not found: <pkg>
。
示例
- 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
返回值
常见的返回值已在 此处 记录,以下是此模块特有的字段
键 |
描述 |
---|---|
当 返回:成功,当 示例: |
|
已更改的软件包列表。 在 community.general 4.5.0 之前,只有在 返回:成功且指定了 示例: |
|
来自 pacman 的错误输出。 返回:成功,当需要时 示例: |
|
来自 pacman 的输出。 返回:成功,当需要时 示例: |