I’ve noticed this for a while and hadn’t thought to ask about it, but when I do dnf group list
, “virtualization” is no longer listed. When I do dnf group install virtualization
it still installs everything fine. I just wanted to know if this is a bug or by design, and if so, why?
I’m not sure what the specific design reasoning is, but it does appear to be a feature to hide that group from the default listing and not a bug.
There’s a ‘hidden’ flag for groups (mentioned but not described in much detail in the man pages for dnf), and virtualization
has that flag set. You can run dnf group list --hidden
to see all groups regardless of that hidden flag status, and at least on my machine Virtualization showed up toward the end, in between Vagrant with libvirt support and Headless Virtualization.
If I had to guess based on inferring a reason, it looks like many of the hidden groups are ones that are relevant to spins or other choices that are conceptually designed to be made when choosing a version to install, or during the installer’s process - but that’s a pure guess (e.g. there are various KDE-related groups that are hidden, perhaps because they’re supposed to be only used in concert with the KDE environment/spin?)
Hope that helps!
The package groups are defined in the “comps” files. For example, here’s the one for F38 (currently rawhide), and at least here, one can see that the virtualization group is set to hidden (“uservisible” is false):
https://www.pagure.io/fedora-comps/blob/main/f/comps-f38.xml.in#_5341
More info in the repo readme, and this wiki page:
https://fedoraproject.org/wiki/How_to_use_and_edit_comps.xml_for_package_groups
Some grepping tells me this change was made in F18:
$ for f in $(ls -v comps-f*); do echo "** $f **" ; rg "<id>virtualization</id>" -A4 $f ; echo ; done
** comps-f7.xml.in **
3715: <id>virtualization</id>
3716- <_name>Virtualization</_name>
3717- <_description>These packages provide a virtualization environment.</_description>
3718- <default>false</default>
3719- <uservisible>true</uservisible>
** comps-f8.xml.in **
4050: <id>virtualization</id>
4051- <_name>Virtualization</_name>
4052- <_description>These packages provide a virtualization environment.</_description>
4053- <default>false</default>
4054- <uservisible>true</uservisible>
** comps-f9.xml.in **
4302: <id>virtualization</id>
4303- <_name>Virtualization</_name>
4304- <_description>These packages provide a virtualization environment.</_description>
4305- <default>false</default>
4306- <uservisible>true</uservisible>
** comps-f10.xml.in **
4952: <id>virtualization</id>
4953- <_name>Virtualization</_name>
4954- <_description>These packages provide a virtualization environment.</_description>
4955- <default>false</default>
4956- <uservisible>true</uservisible>
** comps-f11.xml.in **
5765: <id>virtualization</id>
5766- <_name>Virtualization</_name>
5767- <_description>These packages provide a virtualization environment.</_description>
5768- <default>false</default>
5769- <uservisible>true</uservisible>
** comps-f12.xml.in **
6089: <id>virtualization</id>
6090- <_name>Virtualization</_name>
6091- <_description>These packages provide a virtualization environment.</_description>
6092- <default>false</default>
6093- <uservisible>true</uservisible>
** comps-f13.xml.in **
6221: <id>virtualization</id>
6222- <_name>Virtualization</_name>
6223- <_description>These packages provide a virtualization environment.</_description>
6224- <default>false</default>
6225- <uservisible>true</uservisible>
** comps-f14.xml.in **
6239: <id>virtualization</id>
6240- <_name>Virtualization</_name>
6241- <_description>These packages provide a virtualization environment.</_description>
6242- <default>false</default>
6243- <uservisible>true</uservisible>
** comps-f15.xml.in **
6578: <id>virtualization</id>
6579- <_name>Virtualization</_name>
6580- <_description>These packages provide a virtualization environment.</_description>
6581- <default>false</default>
6582- <uservisible>true</uservisible>
** comps-f16.xml.in **
6733: <id>virtualization</id>
6734- <_name>Virtualization</_name>
6735- <_description>These packages provide a virtualization environment.</_description>
6736- <default>false</default>
6737- <uservisible>true</uservisible>
** comps-f17.xml.in **
6287: <id>virtualization</id>
6288- <_name>Virtualization Client</_name>
6289- <_description>These packages provide a virtualization environment.</_description>
6290- <default>false</default>
6291- <uservisible>true</uservisible>
** comps-f18.xml.in **
5497: <id>virtualization</id>
5498- <_name>Virtualization</_name>
5499- <_description>These packages provide a virtualization environment.</_description>
5500- <default>false</default>
5501- <uservisible>false</uservisible>
** comps-f19.xml.in **
5752: <id>virtualization</id>
5753- <_name>Virtualization</_name>
5754- <_description>These packages provide a virtualization environment.</_description>
5755- <default>false</default>
5756- <uservisible>false</uservisible>
** comps-f20.xml.in **
5955: <id>virtualization</id>
5956- <_name>Virtualization</_name>
5957- <_description>These packages provide a virtualization environment.</_description>
5958- <default>false</default>
5959- <uservisible>false</uservisible>
** comps-f21.xml.in **
6238: <id>virtualization</id>
6239- <_name>Virtualization</_name>
6240- <_description>These packages provide a virtualization environment.</_description>
6241- <default>false</default>
6242- <uservisible>false</uservisible>
** comps-f22.xml.in **
6295: <id>virtualization</id>
6296- <_name>Virtualization</_name>
6297- <_description>These packages provide a virtualization environment.</_description>
6298- <default>false</default>
6299- <uservisible>false</uservisible>
** comps-f23.xml.in **
6222: <id>virtualization</id>
6223- <_name>Virtualization</_name>
6224- <_description>These packages provide a graphical virtualization environment.</_description>
6225- <default>false</default>
6226- <uservisible>false</uservisible>
** comps-f24.xml.in **
6274: <id>virtualization</id>
6275- <_name>Virtualization</_name>
6276- <_description>These packages provide a graphical virtualization environment.</_description>
6277- <default>false</default>
6278- <uservisible>false</uservisible>
** comps-f25.xml.in **
6292: <id>virtualization</id>
6293- <_name>Virtualization</_name>
6294- <_description>These packages provide a graphical virtualization environment.</_description>
6295- <default>false</default>
6296- <uservisible>false</uservisible>
** comps-f26.xml.in **
6406: <id>virtualization</id>
6407- <_name>Virtualization</_name>
6408- <_description>These packages provide a graphical virtualization environment.</_description>
6409- <default>false</default>
6410- <uservisible>false</uservisible>
** comps-f27.xml.in **
6377: <id>virtualization</id>
6378- <_name>Virtualization</_name>
6379- <_description>These packages provide a graphical virtualization environment.</_description>
6380- <default>false</default>
6381- <uservisible>false</uservisible>
** comps-f28.xml.in **
6421: <id>virtualization</id>
6422- <_name>Virtualization</_name>
6423- <_description>These packages provide a graphical virtualization environment.</_description>
6424- <default>false</default>
6425- <uservisible>false</uservisible>
** comps-f29.xml.in **
6467: <id>virtualization</id>
6468- <_name>Virtualization</_name>
6469- <_description>These packages provide a graphical virtualization environment.</_description>
6470- <default>false</default>
6471- <uservisible>false</uservisible>
** comps-f30.xml.in **
5725: <id>virtualization</id>
5726- <_name>Virtualization</_name>
5727- <_description>These packages provide a graphical virtualization environment.</_description>
5728- <default>false</default>
5729- <uservisible>false</uservisible>
** comps-f31.xml.in **
5720: <id>virtualization</id>
5721- <_name>Virtualization</_name>
5722- <_description>These packages provide a graphical virtualization environment.</_description>
5723- <default>false</default>
5724- <uservisible>false</uservisible>
** comps-f32.xml.in **
5649: <id>virtualization</id>
5650- <_name>Virtualization</_name>
5651- <_description>These packages provide a graphical virtualization environment.</_description>
5652- <default>false</default>
5653- <uservisible>false</uservisible>
** comps-f33.xml.in **
5297: <id>virtualization</id>
5298- <_name>Virtualization</_name>
5299- <_description>These packages provide a graphical virtualization environment.</_description>
5300- <default>false</default>
5301- <uservisible>false</uservisible>
** comps-f34.xml.in **
5393: <id>virtualization</id>
5394- <_name>Virtualization</_name>
5395- <_description>These packages provide a graphical virtualization environment.</_description>
5396- <default>false</default>
5397- <uservisible>false</uservisible>
** comps-f35.xml.in **
5444: <id>virtualization</id>
5445- <_name>Virtualization</_name>
5446- <_description>These packages provide a graphical virtualization environment.</_description>
5447- <default>false</default>
5448- <uservisible>false</uservisible>
** comps-f36.xml.in **
5533: <id>virtualization</id>
5534- <_name>Virtualization</_name>
5535- <_description>These packages provide a graphical virtualization environment.</_description>
5536- <default>false</default>
5537- <uservisible>false</uservisible>
** comps-f37.xml.in **
5483: <id>virtualization</id>
5484- <_name>Virtualization</_name>
5485- <_description>These packages provide a graphical virtualization environment.</_description>
5486- <default>false</default>
5487- <uservisible>false</uservisible>
** comps-f38.xml.in **
5337: <id>virtualization</id>
5338- <_name>Virtualization</_name>
5339- <_description>These packages provide a graphical virtualization environment.</_description>
5340- <default>false</default>
5341- <uservisible>false</uservisible>
Using git blame
, I get this commit as the one that made this change. Looks to just be part of a general cleanup to reduce the number of groups being shown in the installer—that’s another place where comps is used:
I’m on F37 and get the following:
$ sudo dnf group install virtualization
Last metadata expiration check: 0:31:19 ago on ter 22 nov 2022 09:09:43.
Dependencies resolved.
==============================================================================================================================
Package Architecture Version Repository Size
==============================================================================================================================
Installing Groups:
Virtualization
Transaction Summary
==============================================================================================================================
Is this ok [y/N]: y
Complete!
I can not confirm that everything is fine.
My guess is that libvirt is by default installed =>F37 and just have to be activated if we do want to use it ?!
Mine is a from F36 Updated system, so I can not check if it was there already.
I’m not sure why you think it’s not ok. You can just take a look at what packages it installs:
# dnf group info virtualization
Group: Virtualization
Description: These packages provide a graphical virtualization environment.
Mandatory Packages:
virt-install
Default Packages:
libvirt-daemon-config-network
libvirt-daemon-kvm
qemu-kvm
virt-manager
virt-viewer
Optional Packages:
guestfs-tools
libguestfs-tools
python3-libguestfs
virt-top
I just was thinking that the system at least should tell me that i already have it installed or list at least which packages Virtualization contains.
Instead it just said (complete output see above ):
Complete!
If I check the dnf history I got confirmed that i installed it on:
dnf history |grep @virtualization
8 | install @virtualization | 2022-03-31 17:44 | Install | 131 EE
I checked with the “Fedora Workstation” group. There I saw that packages have been installed. Even if I also installed them in the middle of the year. My base install was the Spin “Mate Compiz”
dnf history |grep "Fedora Workstation"
263 | group install Fedora Workstation | 2022-11-22 11:37 | Install | 49
14 | group install Fedora Workstation | 2022-06-21 23:54 | Install | 270 EE
So there is definitely something different than other groups.
Because you already had them installed. When you installed the group, it only had to install the meta package for the group.