Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

9.3. 使用软件包组

软件包组是满足共同用途的软件包集合,用于实例系统工具或 Sound 和 Video。安装软件包组会拉取一组依赖软件包,从而节省大量时间。yum groups 命令是顶级命令,涵盖在 yum 中对包组执行的所有操作。

9.3.1. 列出软件包组

Summary 选项 用于查看已安装组、可用组、可用环境组的数量,以及已安装和可用的语言组:

yum groups summary

例 9.14. yum group summary 的输出示例

~]$ yum groups summary
Loaded plugins: langpacks, product-id, subscription-manager
Available Environment Groups: 12
Installed Groups: 10
Available Groups: 12

要列出 yum 存储库中的所有软件包组,请添加 list 选项。您可以根据组名称过滤命令输出。

yum group list glob_expression…

可以将几个可选参数传递给此命令,包括 隐藏 列出未标记为用户可见的组,以及用于列出组 ID 的 id。您可以添加 语言环境已安装可用的 选项,将命令输出减少到特定组类型。

要列出特定组中的强制和可选软件包,请使用以下命令:

yum group info glob_expression…

例 9.15. 查看 LibreOffice 软件包组的信息

 ~]$ yum group info LibreOffice
Loaded plugins: langpacks, product-id, subscription-manager

Group: LibreOffice
 Group-Id: libreoffice
 Description: LibreOffice Productivity Suite
 Mandatory Packages:
 =libreoffice-calc
  libreoffice-draw
 -libreoffice-emailmerge
  libreoffice-graphicfilter
 =libreoffice-impress
 =libreoffice-math
 =libreoffice-writer
 +libreoffice-xsltfilter
 Optional Packages:
  libreoffice-base
  libreoffice-pyuno

如上例中所示,软件包组中的软件包可以具有使用以下符号标记的不同状态:

  • " - " - 未安装包,不会将其作为包组的一部分安装。
  • " + " - 包未安装,但将在下一次 yum 升级或 yum 组升级时安装。
  • " = " - 包已安装并且作为包组的一部分安装.
  • 无符号 - 软件包已安装,但安装在软件包组之外。这意味着 yum group remove 不会删除这些软件包。

这些区别仅在 group_command 配置参数设置为 对象 时才会进行,这是默认设置。如果您不希望 yum跟踪软件包是否作为组的一部分安装或单独安装,则将此参数设置为不同的值,这将"无符号"包,等同于 "=" 软件包。

您可以使用 yum group mark 命令更改上述软件包状态。例如,yum group 将任何给定安装的包标记为 指定组的成员。要避免在组更新时安装新软件包,请使用 yum group mark blacklist。有关 yum group mark 功能的更多信息,请参阅 yum (8)man page。

注意

您可以使用 @^ 前缀识别环境组,软件包组则可标记为 @。使用 yum group listinfoinstallremove 时,传递 @group_name 以指定软件包组、@^group_name 指定环境组,或者包含它们的 group_name

9.3.2. 安装软件包组

每个软件包组都有一个名称和组 ID(groupid)。要列出所有软件包组的名称,及其组 ID(以括号中显示),请输入:

yum group list ids

例 9.16. 查找软件包组的名称和 groupid

要查找软件包组的名称或 ID,例如与 KDE 桌面环境相关的组,请输入:

~]$ yum group list ids kde\*
Available environment groups:
  KDE Plasma Workspaces (kde-desktop-environment)
Done

某些组由配置的仓库中的设置隐藏。例如,在服务器上,使用 隐藏 命令选项同时列出隐藏组:

~]$ yum group list hidden ids kde\*
Loaded plugins: product-id, subscription-manager
Available Groups:
  KDE (kde-desktop)
Done

您可以将其完整组名(不带 groupid 部分)传递到 group install 命令,以此安装软件包组。以 root 用户身份键入:

yum group install "group name"

您还可以按 groupid 安装。以 root 用户身份执行以下命令:

yum group install groupid

如果您使用 @ 符号附加 groupid 或带引号的组名称,您可以将 groupid 或 quoted 组名传递给 install 命令,该符号告知 yum 想要执行 组安装。以 root 用户身份键入:

yum install @group

使用 groupid 或带引号的组名称替换 group。相同的逻辑适用于环境组:

yum install @^group

例 9.17. 安装 KDE 桌面组的四种等效方法

如前文所述,您可以使用四种替代方案,但使用等效的方式来安装软件包组。对于 KDE Desktop,命令如下所示:

~]# yum group install "KDE Desktop"
~]# yum group install kde-desktop
~]# yum install @"KDE Desktop"
~]# yum install @kde-desktop

9.3.3. 删除软件包组

您可以使用类似于 安装 语法的语法删除软件包组,并使用软件包组的名称或其 id。以 root 用户身份键入:

yum group remove group_name
yum group remove groupid

此外,如果您在 remove 命令前面添加 @-symbol(告知 yum 想要执行组删除),则您也可以将 groupid 或带引号的名称传递给 remove 命令。以 root 用户身份键入:

yum remove @group

使用 groupid 或带引号的组名称替换 group。同样,您可以替换环境组:

yum remove @^group

例 9.18. 删除 KDE 桌面 组的四种等效方法

与安装类似,您可以使用四种替代方案,但使用等效的方法删除软件包组:对于 KDE Desktop,命令如下所示:

~]# yum group remove "KDE Desktop"
~]# yum group remove kde-desktop
~]# yum remove @"KDE Desktop"
~]# yum remove @kde-desktop