community.general.pkgng 模块 – FreeBSD >= 9.0 的软件包管理器

注意

此模块是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了这个集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general

要在 playbook 中使用它,请指定:community.general.pkgng

概要

  • 使用 ‘pkgng’ 管理 FreeBSD 的二进制软件包,该软件包在 9.0 之后的版本中可用。

参数

参数

注释

annotation

列表 / 元素=字符串

形式为 <+/-/:><key>[=<value>] 的键值对列表。 + 表示添加注释,- 表示删除注释,: 表示修改注释。如果设置或修改注释,则必须提供值。

autoremove

布尔值

删除不再需要的自动安装的软件包。

选项

  • false ← (默认)

  • true

cached

布尔值

使用本地软件包库,而不是获取更新的软件包库。

选项

  • false ← (默认)

  • true

chroot

路径

Pkg 将在指定的环境中进行 chroot。

不能与 rootdirjail 选项一起使用。

ignore_osver

布尔值

在 community.general 1.3.0 中添加

忽略 FreeBSD 操作系统版本检查,在 -STABLE 和 -CURRENT 分支上很有用。

定义 IGNORE_OSVERSION 环境变量。

选项

  • false ← (默认)

  • true

jail

字符串

Pkg 将在给定的 jail 名称或 ID 中执行。

不能与 chrootrootdir 选项一起使用。

name

别名:pkg

列表 / 元素=字符串 / 必需

要安装/删除的软件包的名称或名称列表。

使用 name=*state=latest 将会运行,但 state=presentstate=absent 将不会执行任何操作。

pkgsite

字符串

对于 1.1.4 之前的 pkgng 版本,指定用于下载软件包的 packagesite。如果未指定,则使用 /usr/local/etc/pkg.conf 中的设置。

对于较新的 pkgng 版本,指定在 /usr/local/etc/pkg/repos 中配置的存储库的名称。

rootdir

路径

对于 1.5 及更高版本的 pkgng,pkg 将在指定的根目录下安装所有软件包。

不能与 chrootjail 选项一起使用。

state

字符串

软件包的状态。

选项

  • "present" ← (默认)

  • "latest"

  • "absent"

use_globs

布尔值

在 community.general 9.3.0 中添加

将软件包名称视为 shell glob 模式。

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持: 完全

可以在 check_mode 中运行,并返回更改的状态预测,而无需修改目标。

diff_mode

支持:

在 diff 模式下,将返回有关已更改(或可能需要在 check_mode 中更改)的详细信息。

注意事项

注意

  • 当使用 pkgsite 时,请注意已在缓存中的软件包不会再次下载。

  • 当与 loop: 一起使用时,每个软件包都将单独处理,将列表直接传递给 name 选项效率更高。

示例

- name: Install package foo
  community.general.pkgng:
    name: foo
    state: present

- name: Annotate package foo and bar
  community.general.pkgng:
    name:
      - foo
      - bar
    annotation: '+test1=baz,-test2,:test3=foobar'

- name: Remove packages foo and bar
  community.general.pkgng:
    name:
      - foo
      - bar
    state: absent

- name: Upgrade package baz
  community.general.pkgng:
    name: baz
    state: latest

- name: Upgrade all installed packages (see warning for the name option first!)
  community.general.pkgng:
    name: "*"
    state: latest

- name: Upgrade foo/bar
  community.general.pkgng:
    name: foo/bar
    state: latest
    use_globs: false

作者

  • bleader (@bleader)