我们知道,如果想要在 Linux 中安装软件包,可以使用软件包管理器来进行安装。由于系统管理员需要频繁用到软件包管理器,所以它是 Linux 当中的一个重要工具。
但是如果想一次性安装一个软件包组,在 Linux 中有可能吗?又如何通过命令去实现呢?
在 Linux 中确实可以用软件包管理器来达到这样的目的。很多软件包管理器都有这样的选项来实现这个功能,但就我所知,apt
或 apt-get
软件包管理器却并没有这个选项。因此对基于 Debian 的系统,需要使用的命令是 tasksel
,而不是 apt
或 apt-get
这样的官方软件包管理器。
在 Linux 中安装软件包组有很多好处。对于 LAMP 来说,安装过程会包含多个软件包,但如果安装软件包组命令来安装,只安装一个包就可以了。
当你的团队需要安装 LAMP,但不知道其中具体包含哪些软件包,这个时候软件包组就派上用场了。软件包组是 Linux 系统上一个很方便的工具,它能让你轻松地完成一组软件包的安装。
软件包组是一组用于公共功能的软件包,包括系统工具、声音和视频。 安装软件包组的过程中,会获取到一系列的依赖包,从而大大节省了时间。
推荐阅读:
- 如何在 Linux 上按照大小列出已安装的软件包
- 如何在 Linux 上查看/列出可用的软件包更新
- 如何在 Linux 上查看软件包的安装/更新/升级/移除/卸载时间
- 如何在 Linux 上查看一个软件包的详细信息
- 如何查看一个软件包是否在你的 Linux 发行版上可用
- 萌新指导:一个可视化的 Linux 包管理工具
- 老手必会:命令行软件包管理器的用法
如何在 CentOS/RHEL 系统上列出可用的软件包组
RHEL 和 CentOS 系统使用的是 RPM 软件包,因此可以使用 yum
软件包管理器来获取相关的软件包信息。
yum
是 “Yellowdog Updater, Modified” 的缩写,它是一个用于基于 RPM 系统(例如 RHEL 和 CentOS)的,开源的命令行软件包管理工具。它是从发行版仓库或其它第三方库中获取、安装、删除、查询和管理 RPM 包的主要工具。
推荐阅读: 使用 yum 命令在 RHEL/CentOS 系统上管理软件包
1 | # yum grouplist |
如果需要列出相关联的软件包,可以执行以下这个命令。下面的例子是列出和 “Performance Tools” 组相关联的软件包。
1 | # yum groupinfo "Performance Tools" |
如何在 Fedora 系统上列出可用的软件包组
Fedora 系统使用的是 DNF 软件包管理器,因此可以通过 DNF 软件包管理器来获取相关的信息。
DNF 的含义是 “Dandified yum”。DNF 软件包管理器是 YUM 软件包管理器的一个分支,它使用 hawkey/libsolv 库作为后端。从 Fedora 18 开始,Aleš Kozumplík 开始着手 DNF 的开发,直到在 Fedora 22 开始加入到系统中。
dnf
命令可以在 Fedora 22 及更高版本上安装、更新、搜索和删除软件包, 它可以自动解决软件包的依赖关系并其顺利安装,不会产生问题。
YUM 被 DNF 取代是由于 YUM 中存在一些长期未被解决的问题。为什么 Aleš Kozumplík 没有对 yum 的这些问题作出修补呢,他认为补丁解决存在技术上的难题,而 YUM 团队也不会马上接受这些更改,还有一些重要的问题。而且 YUM 的代码量有 5.6 万行,而 DNF 只有 2.9 万行。因此已经不需要沿着 YUM 的方向继续开发了,重新开一个分支才是更好的选择。
推荐阅读: 在 Fedora 系统上使用 DNF 命令管理软件包
1 | # dnf grouplist |
如果需要列出相关联的软件包,可以执行以下这个命令。下面的例子是列出和 “Editor” 组相关联的软件包。
1 | # dnf groupinfo Editors |
如何在 openSUSE 系统上列出可用的软件包组
openSUSE 系统使用的是 zypper 软件包管理器,因此可以通过 zypper 软件包管理器来获取相关的信息。
Zypper 是 suse 和 openSUSE 发行版的命令行包管理器。它可以用于安装、更新、搜索和删除软件包,还有管理存储库,执行各种查询等功能。 Zypper 命令行界面用到了 ZYpp 系统管理库(libzypp)。
推荐阅读: 在 openSUSE 和 suse 系统使用 zypper 命令管理软件包
1 | # zypper patterns |
如果需要列出相关联的软件包,可以执行以下这个命令。下面的例子是列出和 “file_server” 组相关联的软件包。另外 zypper
还允许用户使用不同的选项执行相同的操作。
1 | # zypper info file_server |
如果需要列出相关联的软件包,可以执行以下这个命令。
1 | # zypper pattern-info file_server |
如果需要列出相关联的软件包,也可以执行以下这个命令。
1 | # zypper info pattern file_server |
如果需要列出相关联的软件包,也可以执行以下这个命令。
1 | # zypper info -t pattern file_server |
如何在 Debian/Ubuntu 系统上列出可用的软件包组
由于 APT 或 APT-GET 软件包管理器没有为基于 Debian/Ubuntu 的系统提供这样的选项,因此需要使用 tasksel
命令来获取相关信息。
tasksel 是 Debian/Ubuntu 系统上一个很方便的工具,只需要很少的操作就可以用它来安装好一组软件包。可以在 /usr/share/tasksel
目录下的 .desc
文件中安排软件包的安装任务。
默认情况下,tasksel
工具是作为 Debian 系统的一部分安装的,但桌面版 Ubuntu 则没有自带 tasksel
,这个功能类似软件包管理器中的元包(meta-packages)。
tasksel
工具带有一个基于 zenity 的简单用户界面,例如命令行中的弹出图形对话框。
推荐阅读: 使用 tasksel 在 Debian/Ubuntu 系统上快速安装软件包组
1 | # tasksel --list-task |
如果需要列出相关联的软件包,可以执行以下这个命令。下面的例子是列出和 “lamp-server” 组相关联的软件包。
1 | # tasksel --task-desc "lamp-server" |
如何在基于 Arch Linux 的系统上列出可用的软件包组
基于 Arch Linux 的系统使用的是 pacman 软件包管理器,因此可以通过 pacman 软件包管理器来获取相关的信息。
pacman 是 “package manager” 的缩写。pacman
可以用于安装、构建、删除和管理 Arch Linux 软件包。pacman
使用 libalpm(Arch Linux Package Management 库,ALPM)作为后端来执行所有操作。
推荐阅读: 使用 pacman 在基于 Arch Linux 的系统上管理软件包
1 | # pacman -Sg |
如果需要列出相关联的软件包,可以执行以下这个命令。下面的例子是列出和 “gnome” 组相关联的软件包。
1 | # pacman -Sg gnome |
也可以执行以下这个命令实现同样的效果。
1 | # pacman -S gnome |
可以执行以下命令检查相关软件包的数量。
1 | # pacman -Sg gnome | wc -l |
via: https://www.2daygeek.com/how-to-list-an-available-package-groups-in-linux/