You might be looking to install, say, the GNOME Desktop Environment in Fedora 22 (say you installed a spin), so you might check out the available package groups through dnf:
$ sudo dnf group list Last metadata expiration check performed 0:07:56 ago on Tue Oct 6 22:01:54 2015. Available environment groups: Minimal Install Fedora Server Fedora Workstation Fedora Cloud Server KDE Plasma Workspaces Xfce Desktop LXDE Desktop LXQt Desktop Cinnamon Desktop MATE Desktop Sugar Desktop Environment Development and Creative Workstation Web Server Infrastructure Server Basic Desktop Available groups: 3D Printing Administration Tools Audio Production Authoring and Publishing Books and Guides C Development Tools and Libraries Cloud Infrastructure Cloud Management Tools Container Management D Development Tools and Libraries Design Suite Development Tools Domain Membership Fedora Eclipse Editors Educational Software Electronic Lab Engineering and Scientific FreeIPA Server Games and Entertainment Headless Management LibreOffice MATE Applications MATE Compiz Medical Applications Milkymist Network Servers Office/Productivity Robotics RPM Development Tools Security Lab Sound and Video System Tools Text-based Internet Window Managers
Unfortunately, you won’t find an obvious group for your needs. And yet:
$ sudo dnf group info gnome Last metadata expiration check performed 0:10:19 ago on Tue Oct 6 22:01:54 2015. Group: GNOME Description: GNOME is a highly intuitive and user friendly desktop environment. Mandatory Packages: NetworkManager-l2tp NetworkManager-openconnect NetworkManager-openvpn-gnome NetworkManager-pptp-gnome NetworkManager-vpnc-gnome PackageKit-command-not-found PackageKit-gtk3-module abrt-desktop abrt-java-connector aisleriot at-spi2-atk at-spi2-core avahi baobab bijiben brasero brasero-nautilus caribou caribou-gtk2-module caribou-gtk3-module cheese control-center dconf deja-dup deja-dup-nautilus empathy eog evince evince-nautilus evolution evolution-ews evolution-help file-roller file-roller-nautilus firewall-config fprintd-pam fros-gnome gdm gedit glib-networking gnome-backgrounds gnome-bluetooth gnome-boxes gnome-calculator gnome-classic-session gnome-clocks gnome-color-manager gnome-contacts gnome-dictionary gnome-disk-utility gnome-documents gnome-font-viewer gnome-getting-started-docs gnome-initial-setup gnome-logs gnome-maps gnome-packagekit gnome-screenshot gnome-session-xsession gnome-settings-daemon gnome-shell gnome-software gnome-sound-recorder gnome-system-monitor gnome-terminal gnome-themes-standard gnome-user-docs gnome-user-share gnome-weather google-android-emoji-fonts gucharmap gvfs-afc gvfs-afp gvfs-archive gvfs-fuse gvfs-goa gvfs-gphoto2 gvfs-mtp gvfs-smb libcanberra-gtk2 libcanberra-gtk3 libproxy-mozjs librsvg2 libsane-hpaio mousetweaks nautilus nautilus-sendto nm-connection-editor orca polkit-js-engine rhythmbox rygel sane-backends-drivers-scanners seahorse setroubleshoot shotwell simple-scan sushi totem totem-nautilus transmission-gtk vinagre xdg-user-dirs-gtk yelp
Why doesn’t the GNOME group show up in our listing?
Well, in what must be an attempt to better the user experience, it seems Fedora’s repositories a few totally awesome hidden groups:
$ sudo dnf group list -v hidden Available environment groups: Minimal Install (minimal-environment) Fedora Server (server-product-environment) Fedora Workstation (workstation-product-environment) Fedora Cloud Server (cloud-server-environment) KDE Plasma Workspaces (kde-desktop-environment) Xfce Desktop (xfce-desktop-environment) LXDE Desktop (lxde-desktop-environment) LXQt Desktop (lxqt-desktop-environment) Cinnamon Desktop (cinnamon-desktop-environment) MATE Desktop (mate-desktop-environment) Sugar Desktop Environment (sugar-desktop-environment) Development and Creative Workstation (developer-workstation-environment) Web Server (web-server-environment) Infrastructure Server (infrastructure-server-environment) Basic Desktop (basic-desktop-environment) Installed groups: Virtualization (virtualization) Available groups: 3D Printing (3d-printing) Administration Tools (admin-tools) Anaconda tools (anaconda-tools) Audio Production (audio) Authoring and Publishing (authoring-and-publishing) base-x (base-x) Basic Desktop (basic-desktop) Books and Guides (books) Buildsystem building group (buildsys-build) C Development Tools and Libraries (c-development) Cinnamon (cinnamon-desktop) Cloud Infrastructure (cloud-infrastructure) Cloud Management Tools (cloud-management) Cloud Server Tools (cloud-server) Container Management (container-management) Core (core) Critical Path (Applications) (critical-path-apps) Critical Path (Base) (critical-path-base) Critical Path (GNOME) (critical-path-gnome) Critical Path (KDE) (critical-path-kde) Critical Path (LXDE) (critical-path-lxde) Critical Path (LXQt) (critical-path-lxqt) Critical Path (Xfce) (critical-path-xfce) D Development Tools and Libraries (d-development) Design Suite (design-suite) Development Libraries (development-libs) Development Tools (development-tools) Dial-up Networking Support (dial-up) Directory Server (directory-server) DNS Name Server (dns-server) Dogtag Certificate System (dogtag) Domain Membership (domain-client) Fedora Eclipse (eclipse) Editors (editors) Educational Software (education) Electronic Lab (electronic-lab) Engineering and Scientific (engineering-and-scientific) Epiphany Web Browser (epiphany) Fedora Packager (fedora-packager) Firefox Web Browser (firefox) Font design and packaging (font-design) Fonts (fonts) FreeIPA Server (freeipa-server) FTP Server (ftp-server) Games and Entertainment (games) GNOME (gnome-desktop) Extra games for the GNOME Desktop (gnome-games) GNOME Software Development (gnome-software-development) Graphical Internet (graphical-internet) Graphics (graphics) Guest Agents (guest-agents) Guest Desktop Agents (guest-desktop-agents) High Availability (ha) HAProxy (haproxy) Hardware Support (hardware-support) Haskell (haskell) Headless Management (headless-management) Input Methods (input-methods) Java (java) Java Development (java-development) Java Application Server (javaenterprise) KDE Applications (kde-apps) KDE (kde-desktop) KDE Educational applications (kde-education) KDE Multimedia support (kde-media) KDE Office (kde-office) KDE Software Development (kde-software-development) KDE Telepathy (kde-telepathy) KDE Frameworks 5 Software Development (kf5-software-development) Legacy Fonts (legacy-fonts) Legacy Network Server (legacy-network-server) Legacy Software Development (legacy-software-development) Legacy Software Support (legacy-software-support) LibreOffice (libreoffice) LibreOffice Development (libreoffice-development) Load Balancer (load-balancer) Applications for the LXDE Desktop (lxde-apps) LXDE (lxde-desktop) Multimedia support for LXDE (lxde-media) LXDE Office (lxde-office) Applications for the LXQt Desktop (lxqt-apps) LXQt (lxqt-desktop) Multimedia support for LXQt (lxqt-media) LXQt Office (lxqt-office) Mail Server (mail-server) MATE Applications (mate-applications) MATE Compiz (mate-compiz) MATE (mate-desktop) Medical Applications (medical) Milkymist (milkymist) MinGW cross-compiler (mingw32) MongoDB (mongodb) Multimedia (multimedia) MariaDB (MySQL) Database (mysql) Network Servers (network-server) Common NetworkManager Submodules (networkmanager-submodules) News Server (news-server) OCaml (ocaml) Office/Productivity (office) Online Help and Documentation (online-docs) Perl Development (perl) Perl for Web (perl-web) PHP (php) Printing Support (printing) Python (python-web) Robotics (robotics-suite) RPM Development Tools (rpm-development-tools) Ruby (ruby) Ruby on Rails (rubyonrails) Security Lab (security-lab) Server Configuration Tools (server-cfg) Hardware Support for Server Systems (server-hardware-support) Fedora Server product core (server-product) Windows File Server (smb-server) Sound and Video (sound-and-video) PostgreSQL Database (sql-server) Standard (standard) Additional Sugar Activities (sugar-apps) Sugar Desktop Environment (sugar-desktop) System Tools (system-tools) Text-based Internet (text-internet) Tomcat (tomcat) Vagrant with libvirt support (vagrant) Basic Web Server (web-server) Window Managers (window-managers) Fedora Workstation product core (workstation-product) X Software Development (x-software-development) Applications for the Xfce Desktop (xfce-apps) Xfce (xfce-desktop) Extra plugins for the Xfce panel (xfce-extra-plugins) Multimedia support for Xfce (xfce-media) Xfce Office (xfce-office) Xfce Software Development (xfce-software-development) XMonad (xmonad) XMonad for MATE (xmonad-mate) Available language groups: Arabic Support (arabic-support) [ar] Assamese Support (assamese-support) [as] Bengali Support (bengali-support) [bn] Bhutanese Support (bhutanese-support) [dz] Bodo Support (bodo-support) [brx] Myanmar (Burmese) Support (burmese-support) [my] Dogri Support (dogri-support) [doi] Ethiopic Support (ethiopic-support) [am] Finnish Support (finnish-support) [fi] Georgian Support (georgian-support) [ka] Greek Support (greek-support) [el] Gujarati Support (gujarati-support) [gu] Hebrew Support (hebrew-support) [he] Hindi Support (hindi-support) [hi] Japanese Support (japanese-support) [ja] Kannada Support (kannada-support) [kn] Kashmiri Support (kashmiri-support) [ks] Khmer Support (khmer-support) [km] Konkani Support (konkani-support) [kok] Korean Support (korean-support) [ko] Kurdish Support (kurdish-support) [ku] Lepcha Support (lepcha-support) [lep] Maithili Support (maithili-support) [mai] Malayalam Support (malayalam-support) [ml] Manipuri Support (manipuri-support) [mni] Marathi Support (marathi-support) [mr] Nepali Support (nepali-support) [ne] Oriya Support (oriya-support) [or] Persian Support (persian-support) [fa] Punjabi Support (punjabi-support) [pa] Russian Support (russian-support) [ru] Sanskrit Support (sanskrit-support) [sa] Santali Support (santali-support) [sat] Simplified Chinese Support (simplified-chinese-support) [zh_CN] Sindhi Support (sindhi-support) [sd] Sinhala Support (sinhala-support) [si] Tamil Support (tamil-support) [ta] Telugu Support (telugu-support) [te] Thai Support (thai-support) [th] Tibetan Support (tibetan-support) [bo] Traditional Chinese Support (traditional-chinese-support) [zh_TW] Urdu Support (urdu-support) [ur] Vietnamese Support (vietnamese-support) [vi] Yiddish Support (yiddish-support) [yi]
The “-v” option causes the output to include the parenthetical references to the groups’ group IDs (which are also candidates for the case-insensitive comparison described below, and that’s why our reference to the group ‘gnome-desktop’ worked with the string ‘gnome’).
But man! That’s crazy! Why does that even work!? Shouldn’t it just tell us there aren’t any groups with “hidden” in their names? And look at all this awesome stuff! Tons of language support (which might’ve solved my Chinese IME in KDE woes I posted about a while back – gotta test that one), tons of development tools..
It appears that “hidden” is a super secret <group-spec> which defies all man page explanation:
SPECIFYING GROUPS <group-spec> allows one to select (environment) groups a particular operation should work on. It is a case insensitive string (supporting globbing characters) that is matched against a group's ID, canonical name and name translated into the current LC_MESSAGES locale (if possible).
From reading that, one might expect the ‘dnf group list hidden’ command to display any packages whose ID, canonical name, or translated name might be matched case-insensitively against the string ‘hidden’. That is, after all, what the explanation tells us will happen.
Unfortunately, I don’t know why this works. I know support for hidden packages was included as a feature of yum, and its most obvious use is as a convenience for end users (since I’m sure many of these groups are subgroups of other Fedora groups). Unfortunately, it seems the productization of Fedora has led to a little strangeness ’round these parts:
$ sudo dnf group info workstation-product-environment Last metadata expiration check performed 0:46:35 ago on Tue Oct 6 22:01:54 2015. Environment Group: Fedora Workstation Description: Fedora Workstation is a user friendly desktop system for laptops and PCs. Mandatory Groups: Common NetworkManager Submodules Core Fedora Workstation product core Fonts Guest Desktop Agents Hardware Support LibreOffice Multimedia Printing Support base-x
Everyone knows Fedora Workstation comes with the GNOME Desktop Environment…so where’s that gnome-desktop group? For what I’m sure are interesting reasons, it appears the “Fedora Workstation product core” group (Group-Id: “workstation-product”) simply contains a bunch of GNOME packages (but not all). It looks like this was done at least in part to avoid using certain packages rolled up into the gnome-desktop group, such as gnome-packagekit (Fedora Workstation favors instead the PackageKit RPM).
So it’s conceivable that the gnome-desktop group was hidden in order to avoid confusing standard users of the Fedora Workstation product since that product already contains GNOME packages through the workstation-product group, and to avoid users accidentally installing packages which conflict with the versions used by the Fedora Workstation product.
But that’s just my guess. An hour or so of Googling turned up no explanation, so if anyone knows the whole story, feel free to chime in.