luizgavalda.aur
Ansible AUR 助手
Ansible 模块,用于使用一些 Arch 用户仓库 (AUR) 助手以及 makepkg。
以下助手受支持,并按照列出的顺序自动选择(如果存在):
如果找不到助手或明确指定,则将使用 makepkg:
选项
参数 | 选择/默认 | 说明 |
---|---|---|
name | 要安装或升级的包的名称或名称列表。 | |
state | present, latest | 包的期望状态,'present' 如果包已安装则跳过操作。 |
upgrade | yes, no | 是否升级整个系统。 |
use | auto, yay, paru, pacaur, trizen, pikaur, aurman, makepkg | 要使用的工具,'auto' 使用找到的第一个已知助手,makepkg 作为后备。 |
extra_args | null | 要直接传递给工具的其他参数列表。不能在 'auto' 模式下使用。 |
aur_only | yes, no | 将助手操作限制为 AUR。 |
local_pkgbuild | 本地包含 PKGBUILD 的目录, null | 仅在 makepkg 或 pikaur 有效。不从 AUR 下载包。使用本地 PKGBUILD 和其他构建文件构建包。 |
skip_pgp_check | yes, no | 仅在 makepkg 有效。跳过源文件的 PGP 签名验证,对于未正确配置 GnuPG 的包安装非常有用。 |
ignore_arch | yes, no | 仅在 makepkg 有效。忽略缺失或不完整的 arch 字段,当 PKGBUILD 没有 arch=('yourarch') 字段时非常有用。 |
注意
- 需要 name 或 upgrade 其中之一,不能同时使用。
- 在 use=auto 模式下,如果未找到已知助手,将使用 makepkg 作为后备。
安装
AUR 包
ansible-aur-git 包在 AUR 中可用。
注意:模块安装在 /usr/share/ansible/plugins/modules
,这是默认的模块库路径之一。
手动安装
只需将 ansible-aur 仓库克隆到您的用户自定义模块目录:
git clone https://github.com/luizgavalda/ansible-aur.git ~/.ansible/plugins/modules/aur
Ansible Galaxy
ansible-aur 在 Galaxy 中可用,Galaxy 是共享 Ansible 内容的中心。要下载它,请使用:
ansible-galaxy install luizgavalda.aur
注意:如果此模块是从 Ansible Galaxy 安装的,则需要在您的剧本中明确列出:
# playbook.yml
- hosts: localhost
roles:
- luizgavalda.aur
tasks:
- aur: name=package_name
或在您的角色中:
# meta/main.yml
dependencies:
- luizgavalda.aur
# tasks/main.yml
- aur: name=package_name
用法
注意
- 此模块的范围是从 AUR 安装和更新;对于删除软件包或从仓库更新,建议使用官方 pacman 模块。
- 助手的 --needed 参数会自动使用,这意味着如果软件包已是最新,则不会构建和重新安装。
创建 "aur_builder" 用户
虽然 Ansible 期望以 root 身份通过 SSH 登录,但 makepkg 或 AUR 助手不允许以 root 身份执行操作,会失败并显示"you cannot perform this operation as root"。因此,建议创建一个非 root 用户,但在 sudoers 中配置不需要密码的 pacman,我们称之为 aur_builder。
可以在 Ansible 任务中创建该用户,执行以下操作:
- user:
name: aur_builder
create_home: no
group: wheel
- lineinfile:
path: /etc/sudoers.d/11-install-aur_builder
line: 'aur_builder ALL=(ALL) NOPASSWD: /usr/bin/pacman'
create: yes
validate: 'visudo -cf %s'
示例
在任务中使用它,如下例所示:
# 使用 makepkg 安装 trizen,如果已安装则跳过
- aur: name=trizen use=makepkg state=present
become: yes
become_user: aur_builder
# 使用第一个已知助手安装 package_name
- aur: name=package_name
become: yes
become_user: aur_builder
# 使用 yay 安装 package_name_1 和 package_name_2
- aur:
use: yay
name:
- package_name_1
- package_name_2
# 使用 yay 升级系统,仅针对 AUR 包操作。
# 注意:依赖解决仍将包含仓库包。
- aur: upgrade=yes use=yay aur_only=yes
# 使用 pikaur 和本地 PKGBUILD 安装 gnome-shell-extension-caffeine-git。
# 如果已安装则跳过
- aur:
name: gnome-shell-extension-caffeine-git
use: pikaur
local_pkgbuild: {{ role_path }}/files/gnome-shell-extension-caffeine-git
state: present
become: yes
become_user: aur_builder