As you may already know, a package group is a collection of packages that serve a common purpose. For example, the mate-desktop
package group installs all the packages related to the MATE desktop environment. All Linux package managers have the capability to install a group of packages at once. In this tutorial, we will learn how to list the installed packages that belong to a particular group in Linux.
Table of Contents
List Installed Packages that belong to a Particular Group in Linux
Before testing these commands given below, make sure you have installed some package groups in your Linux box.
On Arch Linux and derivatives
In Arch Linux and its derivatives like EndeavourOS, Manjaro Linux, the following command displays the installed packages belong to the MATE package group.
$ sudo pacman -Qg mate
Sample output:
mate caja mate marco mate mate-backgrounds mate mate-control-center mate mate-desktop mate mate-icon-theme mate mate-menus mate mate-notification-daemon mate mate-panel mate mate-polkit mate mate-session-manager mate mate-settings-daemon mate mate-themes mate mate-user-guide
Similarly, the following command displays the installed packages belong to LXDE package group.
$ sudo pacman -Qg lxde
Please note that the above commands will only display the installed packages of a package group.
To list all packages belong to a group from the online repository, run:
$ sudo pacman -Sg lxde
For more details, refer the getting started with Pacman guide.
Also, refer man pages.
$ man pacman
On RPM based systems like Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux
For Fedora and other RPM-based distributions like CentOS or RHEL, package groups can be managed with dnf
or yum
.
List available groups:
$ sudo dnf group list
Show packages in a specific group:
$ sudo dnf group info "GroupName"
Replace "GroupName"
with the actual name of the group.
In older RHEL-based Linux systems, use yum
instead of dnf
.
For instance, run the following command to list the installed packages belong to a group called "Web Server":
# yum groups info "Web Server"
Sample output:
Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: centos.excellmedia.net * epel: mirror.vinahost.vn * extras: centos.excellmedia.net * updates: centos.excellmedia.net Group: Web Server Group-Id: web-server Description: Allows the system to act as a web server, and run Perl and Python web applications. Mandatory Packages: =httpd Default Packages: =crypto-utils =httpd-manual =mod_fcgid =mod_ssl Optional Packages: Pound certmonger cherokee libmemcached memcached mod_auth_kerb mod_auth_mellon mod_auth_openidc mod_fcgid mod_nss mod_revocator mod_security mod_security_crs moin perl-CGI perl-CGI-Session plone python-memcached squid zope
As you see in the above output, the packages are marked with different symbols.
- " = " : Package is installed and it was installed as a part of the package group.
- " + " : Package is not installed but it will be installed on the next yum upgrade or yum group upgrade.
- " - " : Package is not installed and it will not be installed as a part of the package group.
- no symbol : Package is installed but it was installed outside of the package group. This means that the yum group remove command will not remove these packages.
For more details, refer man pages.
# man yum
On Debian, Ubuntu systems
In DEB based systems, Package groups are known as "tasks". Tasks are predefined collections of software.
To view the list of available tasks, run:
$ tasksel --list-task
Sample output:
u manual Manual package selection u kubuntu-live Kubuntu live CD u lubuntu-live Lubuntu live CD u ubuntu-gnome-live Ubuntu GNOME live CD u ubuntu-live Ubuntu live CD u ubuntu-mate-live Ubuntu MATE Live CD u ubuntustudio-dvd-live Ubuntu Studio live DVD u ubuntustudio-live Ubuntu Studio live CD u xubuntu-live Xubuntu live CD u cloud-image Ubuntu Cloud Image (instance) u dns-server DNS server u edubuntu-desktop-gnome Edubuntu desktop u kubuntu-desktop Kubuntu desktop u kubuntu-full Kubuntu full u lamp-server LAMP server u lubuntu-core Lubuntu minimal installation u lubuntu-desktop Lubuntu Desktop u mail-server Mail server u mythbuntu-backend-master Mythbuntu master backend u mythbuntu-backend-slave Mythbuntu slave backend u mythbuntu-desktop Mythbuntu additional roles u mythbuntu-frontend Mythbuntu frontend u postgresql-server PostgreSQL database u samba-server Samba file server u tomcat-server Tomcat Java server u ubuntu-desktop Ubuntu desktop u ubuntu-gnome-desktop Ubuntu GNOME desktop u ubuntu-mate-cloudtop Ubuntu MATE cloudtop u ubuntu-mate-core Ubuntu MATE minimal installation u ubuntu-mate-desktop Ubuntu MATE desktop u ubuntu-usb Ubuntu desktop USB u ubuntustudio-audio Audio recording and editing suite u ubuntustudio-desktop Ubuntu Studio desktop u ubuntustudio-desktop-core Ubuntu Studio minimal DE installation u ubuntustudio-font-meta Large selection of font packages u ubuntustudio-graphics 2D/3D creation and editing suite u ubuntustudio-photography Photograph touchup and editing suite u ubuntustudio-publishing Publishing applications u ubuntustudio-video Video creation and editing suite u virt-host Virtual Machine host u xubuntu-core Xubuntu minimal installation u xubuntu-desktop Xubuntu desktop i openssh-server OpenSSH server i server Basic Ubuntu server
Here, the letters 'u' and 'i' indicates the uninstalled/not installed and installed tasks. As you see in the above output, I have two installed tasks namely 'openssh-server' and 'server'. Now, let us go back to the topic.
To list the packages that belong to any package groups (i.e tasks), for example openssh-server, run:
$ aptitude show openssh-server
This command will list the packages that would be installed by that task.
Sample output:
Package: openssh-server State: installed Automatically installed: no Multi-Arch: foreign Version: 1:7.2p2-4ubuntu2.1 Priority: optional Section: net Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Architecture: amd64 Uncompressed Size: 912 k Depends: libaudit1 (>= 1:2.2.1), libc6 (>= 2.17), libcomerr2 (>= 1.01), libgssapi-krb5-2 (>= 1.12.1+dfsg-2), libkrb5-3 (>= 1.13~alpha1+dfsg), libpam0g (>= 0.99.7.1), libselinux1 (>= 1.32), libssl1.0.0 (>= 1.0.2), libsystemd0, libwrap0 (>= 7.6-4~), zlib1g (>= 1:1.1.4), debconf (>= 0.5) | debconf-2.0, init-system-helpers (>= 1.18~), lsb-base (>= 4.1+Debian11ubuntu7), openssh-client (= 1:7.2p2-4ubuntu2.1), libpam-runtime (>= 0.76-14), libpam-modules (>= 0.72-9), adduser (>= 3.9), dpkg (>= 1.9.0), procps, openssh-sftp-server Recommends: xauth, ncurses-term, ssh-import-id Suggests: ssh-askpass, rssh, molly-guard, ufw, monkeysphere Conflicts: sftp, ssh-socks, ssh2, openssh-server:i386 Replaces: ssh, ssh:i386, ssh-krb5, ssh-krb5:i386 Provides: openssh-server:i386 (= 1:7.2p2-4ubuntu2.1), ssh-server, ssh-server:i386 Provided by: openssh-server:i386 (1:7.2p2-4), openssh-server:i386 (1:7.2p2-4ubuntu2.1) Description: secure shell (SSH) server, for secure access from remote machines This is the portable version of OpenSSH, a free implementation of the Secure Shell protocol as specified by the IETF secsh working group. [...]
For more details, refer the man pages:
$ man apt
On SUSE/openSUSE
In SUSE/openSUSE distros, the group of softwares are known as patterns.
To find out which packages belong to a pattern, use "if" or "info" as shown below:
$ zypper if -t pattern <pattern_name>
Or,
$ zypper pattern-info <pattern_name>
Say for example, the following command displays the packages belong to a pattern called lamp_server.
$ zypper pattern-info lamp_server
For more details, refer man pages:
$ man zupper
Conclusion
In this brief tutorial, we discussed how to list installed packages packages that belong to a package group in different Linux distributions.
Package groups in Linux help you manage multiple related software programs at once. This makes it easier to set up and update systems, keep everything running smoothly, and fix problems when they arise. It's especially handy for people who manage lots of computers or need to set up specific types of software quickly.
Related Read:
2 comments
I run the Linux Mint variant of the Debian–>Ubuntu family of distributions. I have had troubles in the past running ‘tasksel’. For whatever reason, packages were flagged for removal or purging. Some were removed/purged immediately. Some waited until the next time I apt, synaptic, or mintupdate. Regardless, my workstation became unstable an I needed to reinstall the distro. I never did learn what provoked this behavior. I can only guess that something caused the underlying package management and tasksel to lose their minds.
Backup thy data!
“Backup thy data!” – Very good advice. I completely agree with you.