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