If you are on an immutable distribution (Silverblue/Kionite, MicroOS) chances are that installing lots and lots of packages on the base system is not advisable.
One way is to use a distrobox for them.
To run libvirt/qemu/kvm we need a systemd container and we need a rootful container to be able to use it, see this tip to have a list of compatible images. We will use in this example AlmaLinux 8:
:~> distrobox create --root --init --image quay.io/almalinux/8-init:8 --name libvirtd-container
:~> distrobox enter --root libvirtd-container
Let it initialize, then we can install all the packages we need:
:~> distrobox enter --root libvirtd-container
:~$ # We're now inside the container
:~$ sudo dnf groupinstall "Virtualization Host" --allowerasing
...
:~$ sudo systemctl enable --now libvirtd
Now we need to allow host to connect to the guest's libvirt session, we will use ssh for it:
:~$ # We're now inside the container
:~$ sudo dnf install openssh-server
:-$ echo "ListenAddress 127.0.0.1
Port 2222" | sudo tee -a /etc/ssh/sshd_config
:-$ sudo systemctl enable --now sshd
:-$ sudo systemctl restart sshd
You can now install VirtManager, you can either use a normal (non root) distrobox, and export the app
Now you will need to Add a connection:
Then set it like this:
- Tick the "Use ssh" option
- username: root
- hostname: 127.0.0.1:2222
Optionally you can set it to autoconnect.
Now you can simply double click the connection to activate it, you'll be prompted with your password, insert the same password as the host:
And you should be good to go!