Meta package and package group (简体中文)
软件打包者可以将一组相关的软件包定义为 元软件包 或 软件包组。通过安装一个元软件包或软件包组,可以同时安装一系列的软件包。虽然软件包组不是一个软件包,但安装操作和一个真正的软件包相同。请参考 pacman#Installing package groups 和 PKGBUILD#groups.
软件包组是一组软件包,由打包者定义。按组安装/删除时, 通过组名可以替代组中的所有软件包。安装方法参考Pacman#Installing package groups和PKGBUILD#groups.
和软件包组相比,元软件包的优点是。而如果有新软件包加入一个组,这个软件包不会在更新时自动被安装。元软件包的缺点是不如软件包组灵活。使用软件包组时,可以只删除组中的某几个软件,其它软件保持不变。而使用元软件包时,只有删除元软件包之后,才能自由删除其中的单个包。
区别
元软件包是空的,通过依赖关系安装软件包。元软件包,通常以 -meta 结尾,和软件包组提供的功能类似,可以同时安装一系列软件,
每一个方式都有其优缺点:
元软件包:
- 安装方法和其它软件包一样 (pacman#Installing specific packages).
- 删除方法和其他软件包一样 (pacman#Removing packages).
- 所有后续加入的软件包都会在更新时被自动安装。
- 用户无法选择仅安装元软件包依赖的部分软件。
- 只有删除了元软件包之后,才能删除其依赖的其它软件包。
软件包组:
- 安装软件包组时会让用户选择安装哪些软件包(pacman#Installing package groups).
- 软件包组仅是一个列表,所以用户无法删除一个软件包组,
pacman -R groupname
会尝试删除软件包组中的所有软件. - 新加入软件包组的软件不会在更新时自动安装.
- 用户可以选择安装组中的部分软件.
- 用户可以选择仅删除软件包组中的部分软件.
元软件包
最重要的元软件包是 base. 包含了 Arch Linux 安装时需要的最小软件集,包含:
kernel 是可选以来,请参考发布说明 和 为什么 base 是元软件包。
软件包组
重要的软件包组是 base-devel. 包含编译软件需要的主要工具, 例如 GCC 和 make 等。请参阅 makepkg#Usage。