如何在Linux中列出可用的软件包组

我们知道,如果想要在 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 系统上管理软件包
# yum grouplistLoaded plugins: fastestmirror, securitySetting up Group ProcessLoading mirror speeds from cached hostfile* epel: epel.mirror.constant.comInstalled Groups:BaseE-mail serverGraphical Administration ToolsHardware monitoring utilitiesLegacy UNIX compatibilityMilkymistNetworking ToolsPerformance ToolsPerl SupportSecurity ToolsAvailable Groups:Additional DevelopmentBackup ClientBackup ServerCIFS file serverClient management toolsCompatibility librariesConsole internet toolsDebugging ToolsDesktop..Available Language Groups:Afrikaans Support [af]Albanian Support [sq]Amazigh Support [ber]Arabic Support [ar]Armenian Support [hy]Assamese Support [as]Azerbaijani Support [az]..Done
如果需要列出相关联的软件包,可以执行以下这个命令。下面的例子是列出和 “Performance Tools” 组相关联的软件包。
[SITESERVER_PAGE]
# yum groupinfo "Performance Tools"Loaded plugins: fastestmirror, securitySetting up Group ProcessLoading mirror speeds from cached hostfile* epel: ewr.edge.kernel.orgGroup: Performance ToolsDescription: Tools for diagnosing system and application-level performance problems.Mandatory Packages:blktracesysstatDefault Packages:dstatiotoplatencytoplatencytop-tuioprofileperfpowertopseekwatcherOptional Packages:oprofile-jitpapisdparmsg3_utilstiobenchtunedtuned-utils
如何在 Fedora 系统上列出可用的软件包组
Fedora 系统使用的是 DNF 软件包管理器,因此可以通过 DNF 软件包管理器来获取相关的信息。
[SITESERVER_PAGE]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 命令管理软件包
# dnf grouplistLast metadata expiration check: 0:00:00 ago on Sun 09 Sep 2018 07:10:36 PM IST.Available Environment Groups:Fedora Custom Operating SystemMinimal InstallFedora Server EditionFedora WorkstationFedora Cloud ServerKDE Plasma WorkspacesXfce DesktopLXDE DesktopHawaii DesktopLXQt DesktopCinnamon DesktopMATE DesktopSugar Desktop EnvironmentDevelopment and Creative WorkstationWeb ServerInfrastructure ServerBasic DesktopInstalled Groups:C Development Tools and LibrariesDevelopment ToolsAvailable Groups:3D PrintingAdministration ToolsAnsible nodeAudio ProductionAuthoring and PublishingBooks and GuidesCloud InfrastructureCloud Management ToolsContainer ManagementD Development Tools and Libraries..RPM Development ToolsSecurity LabText-based InternetWindow ManagersGNOME Desktop EnvironmentGraphical InternetKDE (K Desktop Environment)FontsGames and EntertainmentHardware SupportSound and VideoSystem Tools
如果需要列出相关联的软件包,可以执行以下这个命令。下面的例子是列出和 “Editor” 组相关联的软件包。
[SITESERVER_PAGE]
# dnf groupinfo EditorsLast metadata expiration check: 0:04:57 ago on Sun 09 Sep 2018 07:10:36 PM IST.Group: EditorsDescription: Sometimes called text editors, these are programs that allow you to create and edit text files. This includes Emacs and Vi.Optional Packages:code-editorcssedemacsemacs-auctexemacs-bbdbemacs-essemacs-vmgeanygobbyjedjoeleafpadneditpoeditpsgmlvim-X11vim-enhancedxemacsxemacs-packages-basexemacs-packages-extraxemacs-xftxmlcopyeditorzile
如何在 openSUSE 系统上列出可用的软件包组
openSUSE 系统使用的是 zypper 软件包管理器,因此可以通过 zypper 软件包管理器来获取相关的信息。
[SITESERVER_PAGE]Zypper 是 suse 和 openSUSE 发行版的命令行包管理器。它可以用于安装、更新、搜索和删除软件包,还有管理存储库,执行各种查询等功能。 Zypper 命令行界面用到了 ZYpp 系统管理库(libzypp)。
推荐阅读: 在 openSUSE 和 suse 系统使用 zypper 命令管理软件包
# zypper patternsLoading repository data...Warning: Repository 'Update Repository (Non-Oss)' appears to be outdated. Consider using a different mirror or server.Warning: Repository 'Main Update Repository' appears to be outdated. Consider using a different mirror or server.Reading installed packages...S | Name | Version | Repository | Dependency---|----------------------|---------------|-----------------------|-----------| 64bit | 20150918-25.1 | Main Repository (OSS) || apparmor | 20150918-25.1 | Main Repository (OSS) |i | apparmor | 20150918-25.1 | @System || base | 20150918-25.1 | Main Repository (OSS) |i+ | base | 20150918-25.1 | @System || books | 20150918-25.1 | Main Repository (OSS) || console | 20150918-25.1 | Main Repository (OSS) || devel_C_C++ | 20150918-25.1 | Main Repository (OSS) |i | enhanced_base | 20150918-25.1 | @System || enlightenment | 20150918-25.1 | Main Repository (OSS) || file_server | 20150918-25.1 | Main Repository (OSS) || fonts | 20150918-25.1 | Main Repository (OSS) |i | fonts | 20150918-25.1 | @System || games | 20150918-25.1 | Main Repository (OSS) |i | games | 20150918-25.1 | @System || gnome | 20150918-25.1 | Main Repository (OSS) || gnome_basis | 20150918-25.1 | Main Repository (OSS) |i | imaging | 20150918-25.1 | @System || kde | 20150918-25.1 | Main Repository (OSS) |i+ | kde | 20150918-25.1 | @System || kde_plasma | 20150918-25.1 | Main Repository (OSS) |i | kde_plasma | 20150918-25.1 | @System || lamp_server | 20150918-25.1 | Main Repository (OSS) || laptop | 20150918-25.1 | Main Repository (OSS) |i+ | laptop | 20150918-25.1 | @System || lxde | 20150918-25.1 | Main Repository (OSS) || lxqt | 20150918-25.1 | Main Repository (OSS) |i | multimedia | 20150918-25.1 | @System || network_admin | 20150918-25.1 | Main Repository (OSS) || non_oss | 20150918-25.1 | Main Repository (OSS) |i | non_oss | 20150918-25.1 | @System || office | 20150918-25.1 | Main Repository (OSS) |i | office | 20150918-25.1 | @System || print_server | 20150918-25.1 | Main Repository (OSS) || remote_desktop | 20150918-25.1 | Main Repository (OSS) || x11 | 20150918-25.1 | Main Repository (OSS) |i+ | x11 | 20150918-25.1 | @System || x86 | 20150918-25.1 | Main Repository (OSS) || xen_server | 20150918-25.1 | Main Repository (OSS) || xfce | 20150918-25.1 | Main Repository (OSS) || xfce_basis | 20150918-25.1 | Main Repository (OSS) || yast2_basis | 20150918-25.1 | Main Repository (OSS) |i | yast2_basis | 20150918-25.1 | @System || yast2_install_wf | 20150918-25.1 | Main Repository (OSS) |
如果需要列出相关联的软件包,可以执行以下这个命令。下面的例子是列出和 “file_server” 组相关联的软件包。另外 zypper 还允许用户使用不同的选项执行相同的操作。
# zypper info file_serverLoading repository data...Warning: Repository 'Update Repository (Non-Oss)' appears to be outdated. Consider using a different mirror or server.Warning: Repository 'Main Update Repository' appears to be outdated. Consider using a different mirror or server.Reading installed packages...Information for pattern file_server:------------------------------------Repository : Main Repository (OSS)Name : file_serverVersion : 20150918-25.1Arch : x86_64Vendor : openSUSEInstalled : NoVisible to User : YesSummary : File ServerDescription :File services to host files so that they may be accessed or retrieved by other computers on the same network. This includes the FTP, SMB, and NFS protocols.Contents :S | Name | Type | Dependency---|-------------------------------|---------|------------i+ | patterns-openSUSE-base | package | Required| patterns-openSUSE-file_server | package | Required| nfs-kernel-server | package | Recommendedi | nfsidmap | package | Recommendedi | samba | package | Recommendedi | samba-client | package | Recommendedi | samba-winbind | package | Recommended| tftp | package | Recommended| vsftpd | package | Recommended| yast2-ftp-server | package | Recommended| yast2-nfs-server | package | Recommendedi | yast2-samba-server | package | Recommended| yast2-tftp-server | package | Recommended
如果需要列出相关联的软件包,可以执行以下这个命令。
[SITESERVER_PAGE]
# zypper pattern-info file_serverLoading repository data...Warning: Repository 'Update Repository (Non-Oss)' appears to be outdated. Consider using a different mirror or server.Warning: Repository 'Main Update Repository' appears to be outdated. Consider using a different mirror or server.Reading installed packages...Information for pattern file_server:------------------------------------Repository : Main Repository (OSS)Name : file_serverVersion : 20150918-25.1Arch : x86_64Vendor : openSUSEInstalled : NoVisible to User : YesSummary : File ServerDescription :File services to host files so that they may be accessed or retrieved by other computers on the same network. This includes the FTP, SMB, and NFS protocols.Contents :S | Name | Type | Dependency---|-------------------------------|---------|------------i+ | patterns-openSUSE-base | package | Required| patterns-openSUSE-file_server | package | Required| nfs-kernel-server | package | Recommendedi | nfsidmap | package | Recommendedi | samba | package | Recommendedi | samba-client | package | Recommendedi | samba-winbind | package | Recommended| tftp | package | Recommended| vsftpd | package | Recommended| yast2-ftp-server | package | Recommended| yast2-nfs-server | package | Recommendedi | yast2-samba-server | package | Recommended| yast2-tftp-server | package | Recommended
如果需要列出相关联的软件包,也可以执行以下这个命令。
[SITESERVER_PAGE]
# zypper info pattern file_serverLoading repository data...Warning: Repository 'Update Repository (Non-Oss)' appears to be outdated. Consider using a different mirror or server.Warning: Repository 'Main Update Repository' appears to be outdated. Consider using a different mirror or server.Reading installed packages...Information for pattern file_server:------------------------------------Repository : Main Repository (OSS)Name : file_serverVersion : 20150918-25.1Arch : x86_64Vendor : openSUSEInstalled : NoVisible to User : YesSummary : File ServerDescription :File services to host files so that they may be accessed or retrieved by other computers on the same network. This includes the FTP, SMB, and NFS protocols.Contents :S | Name | Type | Dependency---|-------------------------------|---------|------------i+ | patterns-openSUSE-base | package | Required| patterns-openSUSE-file_server | package | Required| nfs-kernel-server | package | Recommendedi | nfsidmap | package | Recommendedi | samba | package | Recommendedi | samba-client | package | Recommendedi | samba-winbind | package | Recommended| tftp | package | Recommended| vsftpd | package | Recommended| yast2-ftp-server | package | Recommended| yast2-nfs-server | package | Recommendedi | yast2-samba-server | package | Recommended| yast2-tftp-server | package | Recommended
如果需要列出相关联的软件包,也可以执行以下这个命令。
[SITESERVER_PAGE]
# zypper info -t pattern file_serverLoading repository data...Warning: Repository 'Update Repository (Non-Oss)' appears to be outdated. Consider using a different mirror or server.Warning: Repository 'Main Update Repository' appears to be outdated. Consider using a different mirror or server.Reading installed packages...Information for pattern file_server:------------------------------------Repository : Main Repository (OSS)Name : file_serverVersion : 20150918-25.1Arch : x86_64Vendor : openSUSEInstalled : NoVisible to User : YesSummary : File ServerDescription :File services to host files so that they may be accessed or retrieved by other computers on the same network. This includes the FTP, SMB, and NFS protocols.Contents :S | Name | Type | Dependency---|-------------------------------|---------|------------i+ | patterns-openSUSE-base | package | Required| patterns-openSUSE-file_server | package | Required| nfs-kernel-server | package | Recommendedi | nfsidmap | package | Recommendedi | samba | package | Recommendedi | samba-client | package | Recommendedi | samba-winbind | package | Recommended| tftp | package | Recommended| vsftpd | package | Recommended| yast2-ftp-server | package | Recommended| yast2-nfs-server | package | Recommendedi | yast2-samba-server | package | Recommended| yast2-tftp-server | package | Recommended
如何在 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 系统上快速安装软件包组
# tasksel --list-tasku kubuntu-live Kubuntu live CDu lubuntu-live-gtk Lubuntu live CD (GTK part)u ubuntu-budgie-live Ubuntu Budgie live CDu ubuntu-live Ubuntu live CDu ubuntu-mate-live Ubuntu MATE Live CDu ubuntustudio-dvd-live Ubuntu Studio live DVDu vanilla-gnome-live Ubuntu GNOME live CDu xubuntu-live Xubuntu live CDu cloud-image Ubuntu Cloud Image (instance)u dns-server DNS serveru kubuntu-desktop Kubuntu desktopu kubuntu-full Kubuntu fullu lamp-server LAMP serveru lubuntu-core Lubuntu minimal installationu lubuntu-desktop Lubuntu Desktopu lubuntu-gtk-core Lubuntu minimal installation (GTK part)u lubuntu-gtk-desktop Lubuntu Desktop (GTK part)u lubuntu-qt-core Lubuntu minimal installation (Qt part)u lubuntu-qt-desktop Lubuntu Qt Desktop (Qt part)u mail-server Mail serveru postgresql-server PostgreSQL databasei print-server Print serveru samba-server Samba file serveru tomcat-server Tomcat Java serveru ubuntu-budgie-desktop Ubuntu Budgie desktopi ubuntu-desktop Ubuntu desktopu ubuntu-mate-core Ubuntu MATE minimalu ubuntu-mate-desktop Ubuntu MATE desktopi ubuntu-usb Ubuntu desktop USBu ubuntustudio-audio Audio recording and editing suiteu ubuntustudio-desktop Ubuntu Studio desktopu ubuntustudio-desktop-core Ubuntu Studio minimal DE installationu ubuntustudio-fonts Large selection of font packagesu ubuntustudio-graphics 2D/3D creation and editing suiteu ubuntustudio-photography Photograph touchup and editing suiteu ubuntustudio-publishing Publishing applicationsu ubuntustudio-video Video creation and editing suiteu vanilla-gnome-desktop Vanilla GNOME desktopu xubuntu-core Xubuntu minimal installationu xubuntu-desktop Xubuntu desktopu openssh-server OpenSSH serveru server Basic Ubuntu server
如果需要列出相关联的软件包,可以执行以下这个命令。下面的例子是列出和 “lamp-server” 组相关联的软件包。
[SITESERVER_PAGE]
# tasksel --task-desc "lamp-server"Selects a ready-made Linux/Apache/MySQL/PHP server.
如何在基于 Arch Linux 的系统上列出可用的软件包组
基于 Arch Linux 的系统使用的是 pacman 软件包管理器,因此可以通过 pacman 软件包管理器来获取相关的信息。
pacman 是 “package manager” 的缩写。pacman 可以用于安装、构建、删除和管理 Arch Linux 软件包。pacman 使用 libalpm(Arch Linux Package Management 库,ALPM)作为后端来执行所有操作。
推荐阅读: 使用 pacman 在基于 Arch Linux 的系统上管理软件包
# pacman -Sgbase-develbasemultilib-develgnome-extrakde-applicationskdepimkdeutilskdeedukf5kdemultimediagnomeplasmakdegameskdesdkkdebasexfce4fprintkdegraphicskdenetworkkdeadminkf5-aidskdewebdev..dlang-ldclibretroringlxqtnon-dawnonalsaqtcurverealtimesugar-fructosetesseract-datavim-plugins
如果需要列出相关联的软件包,可以执行以下这个命令。下面的例子是列出和 “gnome” 组相关联的软件包。
[SITESERVER_PAGE]
# pacman -Sg gnomegnome baobabgnome cheesegnome eoggnome epiphanygnome evincegnome file-rollergnome gdmgnome geditgnome gnome-backgroundsgnome gnome-calculatorgnome gnome-calendargnome gnome-charactersgnome gnome-clocksgnome gnome-color-managergnome gnome-contactsgnome gnome-control-centergnome gnome-dictionarygnome gnome-disk-utilitygnome gnome-documentsgnome gnome-font-viewer..gnome sushignome totemgnome trackergnome tracker-minersgnome vinognome xdg-user-dirs-gtkgnome yelpgnome gnome-boxesgnome gnome-softwaregnome simple-scan
也可以执行以下这个命令实现同样的效果。
[SITESERVER_PAGE]
# pacman -S gnome:: There are 64 members in group gnome::: Repository extra1) baobab 2) cheese 3) eog 4) epiphany 5) evince 6) file-roller 7) gdm 8) gedit 9) gnome-backgrounds 10) gnome-calculator 11) gnome-calendar 12) gnome-characters 13) gnome-clocks14) gnome-color-manager 15) gnome-contacts 16) gnome-control-center 17) gnome-dictionary 18) gnome-disk-utility 19) gnome-documents 20) gnome-font-viewer 21) gnome-getting-started-docs22) gnome-keyring 23) gnome-logs 24) gnome-maps 25) gnome-menus 26) gnome-music 27) gnome-photos 28) gnome-screenshot 29) gnome-session 30) gnome-settings-daemon 31) gnome-shell32) gnome-shell-extensions 33) gnome-system-monitor 34) gnome-terminal 35) gnome-themes-extra 36) gnome-todo 37) gnome-user-docs 38) gnome-user-share 39) gnome-video-effects 40) grilo-plugins41) gvfs 42) gvfs-afc 43) gvfs-goa 44) gvfs-google 45) gvfs-gphoto2 46) gvfs-mtp 47) gvfs-nfs 48) gvfs-smb 49) mousetweaks 50) mutter 51) nautilus 52) networkmanager 53) orca 54) rygel55) sushi 56) totem 57) tracker 58) tracker-miners 59) vino 60) xdg-user-dirs-gtk 61) yelp:: Repository community62) gnome-boxes 63) gnome-software 64) simple-scanEnter a selection (default=all): ^CInterrupt signal received
可以执行以下命令检查相关软件包的数量。
[SITESERVER_PAGE]
# pacman -Sg gnome | wc -l64