包管理

可以使用 packages 部分安装和移除包。

packages:
    manager: <string> # required
    update: <boolean>
    cleanup: <boolean>
    sets:
        - packages:
            - <string>
            - ...
          action: <string> # required
          architectures: <array> # filter
          releases: <array> # filter
          variants: <array> # filter
          flags: <array> # install/remove flags for just this set
        - ...
    repositories:
        - name: <string>
          url: <string>
          type: <string>
          key: <string>
          architectures: <array> # filter
          releases: <array> # filter
          variants: <array> # filter
        - ...

manager 键指定要使用的包管理器。有效的包管理器是

  • apk

  • apt

  • dnf

  • egoportageportageego 的组合)

  • equo

  • anise

  • opkg

  • pacman

  • portage

  • slackpkg

  • xbps

  • yum

  • zypper

也可以指定自定义的包管理器。如果 distrobuilder 不支持所需的包管理器,这很有用。

packages:
    custom_manager: # required
        clean: # required
            cmd: <string>
            flags: <array>
        install: # required
            cmd: <string>
            flags: <array>
        remove: # required
            cmd: <string>
            flags: <array>
        refresh: # required
            cmd: <string>
            flags: <array>
        update: # required
            cmd: <string>
            flags: <array>
        flags: <array> # global flags for all commands
    ...

如果 update 为 true,包管理器将更新所有已安装的包。

如果 cleanup 为 true,包管理器将运行清理操作,通常会清理缓存文件。但这取决于包管理器,并非所有包管理器都支持此操作。

集合包含一个 packages 列表、一个 action 以及可选的过滤器。这里,packages 是要安装或移除的包列表。action 的值必须是 installremove。如果为包集合指定了 flags,则在调用 installremove 命令时,会将它们附加到特定命令的标志以及任何全局标志。例如,可以定义一个应该使用 --no-install-recommends 安装的包集合。

repositories 包含要添加的附加存储库列表。仅当包管理器支持多个存储库管理器时,才需要 type 字段。key 字段是一个可能需要用于验证的 GPG 加密的密钥环。

根据包管理器,url 字段可以包含存储库文件的內容。以下内容在 yum 中是可能的

packages:
  manager: yum
  update: false
  repositories:
    - name: myrepo
      url: |-
        [myrepo]
        baseurl=http://user:password@1.1.1.1
        gpgcheck=0