Meta package and package group
外观
(重定向自 Base meta package)
Meta 包和包组可以由打包者定义,用于表示一组相关的软件包。两者都可以通过使用 meta 包或包组名称来替代每个单独的软件包名称,从而同时安装或卸载这组软件包。虽然包组不是一个软件包,但它可以以类似软件包的方式安装,请参阅 pacman#安装包组 和 PKGBUILD#groups。
Meta 包与包组的区别
Meta 包与普通包的区别在于,Meta 包是空的,纯粹用于通过依赖关系将相关包链接在一起。一个Meta 包,通常(但不总是)以 "-meta" 后缀命名,它提供了与包组类似的功能,因为它能够同时安装或卸载多个相关的软件包。
每种解决方案都有其优缺点
Meta 包:
- Meta 包可以像安装任何其他包一样进行安装(参见 pacman#安装特定软件包)。
- Meta 包可以像卸载任何其他包一样进行卸载(参见 pacman#卸载软件包)。
- 当 Meta 包本身通过新的依赖关系集进行更新时,任何新成员包都将被安装。
- 用户无法选择希望安装哪些 Meta 包的依赖项。
- 用户无法卸载 Meta 包的依赖项,除非卸载 Meta 包本身。
包组:
- 包组会提示用户选择他们希望从组中安装的软件包(参见 pacman#安装包组)。
- 用户无法卸载一个包组,因为他们安装的是软件包列表。相反,
pacman -R groupname会尝试删除该包组的所有成员。 - 新加入的包组成员不会被自动安装。相反,可以运行命令
comm -23 <(pacman -Sg package_group | awk '{print $2}' | sort) <(pacman -Qq | sort)来显示系统中未安装的package_group的哪些成员。 - 用户可以选择他们希望安装的包组的成员。
- 用户可以卸载包组的成员,而无需删除整个包组。
Meta 包
最重要的 Meta 包是 base。它包含一个定义了基础 Arch Linux 安装的最小软件包集。它包括
- 基础功能,如 glibc 和 bash,
- 发行版相关内容,如 pacman 和 systemd
- POSIX 工具,如 core utilities、进程、文件和文件压缩工具
- 网络工具,如 iproute2
内核是一个可选依赖。请参阅 引入时的公告,以及 base 成为 Meta 包的原因。
另一个常见的 Meta 包是 base-devel。它包含一个完整的构建环境,用于 makepkg。请参阅 它成为 Meta 包的原因。
用户组
包组通常用于方便安装 桌面环境。请参阅 Desktop environment#桌面环境列表。
另一个例子是 pro-audio 包组,用于 专业音频 软件,这些软件在 官方仓库 中可用。
请参阅 所有包组列表。