跳转至内容

Meta package and package group

来自 ArchWiki
(重定向自 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 安装的最小软件包集。它包括

内核是一个可选依赖。请参阅 引入时的公告,以及 base 成为 Meta 包的原因

另一个常见的 Meta 包是 base-devel。它包含一个完整的构建环境,用于 makepkg。请参阅 它成为 Meta 包的原因

用户组

包组通常用于方便安装 桌面环境。请参阅 Desktop environment#桌面环境列表

另一个例子是 pro-audio 包组,用于 专业音频 软件,这些软件在 官方仓库 中可用。

请参阅 所有包组列表