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') 字段时非常有用。

注意

  • 需要 nameupgrade 其中之一,不能同时使用。
  • 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
关于项目

Ansible module to use some Arch User Repository (AUR) helpers as well as makepkg.

安装
ansible-galaxy install luizgavalda.aur
许可证
gpl-3.0
下载
1.7k
拥有者