Install libvirtd

This book is primarily about Fedora Atomic Desktop (sway) hosts, but these instructions are generic enough to work on a wide variety of systemd based Linux operating systems, including Fedora Workstation (traditional), Fedora CoreOS, Arch Linux, and Debian (with caveats).

Packages for Fedora Atomic Desktop hosts

Tip

Full package installation for Fedora Atomic Desktop hosts are covered in the chapter on Layering packages.

Packages for Fedora CoreOS

[bash]: Run this on your workstation:
sudo rpm-ostree install qemu-kvm libvirt virt-manager virt-viewer \
     virt-install libvirt-daemon-config-network libvirt-daemon-kvm \
     libguestfs-tools python3-libguestfs virt-top distrobox make

Packages for traditional Fedora Workstation hosts

Info

These are the packages you would need to install on traditional Fedora Workstation (or Server, but not CoreOS nor Atomic hosts)

[bash]: Run this on your workstation:
sudo dnf install qemu-kvm libvirt virt-manager virt-viewer \
     virt-install libvirt-daemon-config-network libvirt-daemon-kvm \
     libguestfs-tools python3-libguestfs virt-top net-tools

Packages for Arch Linux hosts

Info

For Arch Linux, it is recommended to do a full system update and reboot prior to installing the libvirt packages.

[bash]: Run this on your workstation:
sudo pacman -Syu
sudo reboot

After reboot, install packages:

[bash]: Run this on your workstation:
sudo pacman -S libvirt iptables-nft dnsmasq qemu-base virt-install \
               sysfsutils bridge-utils ebtables git make which jq \
               dmidecode pkgconf gcc

Packages for Debian/Ubuntu hosts

Info

For Debian (or Ubuntu), it is recommended to do a full system upgrade and reboot prior to installing the libvirt packages.

[bash]: Run this on your workstation:
sudo apt update
sudo apt upgrade
sudo reboot

After reboot, install packages:

[bash]: Run this on your workstation:
sudo apt install --no-install-recommends \
                 libvirt-daemon-system virtinst libvirt-clients \
                 dnsmasq sysfsutils bridge-utils ebtables git make \
                 which jq dmidecode pkgconf gcc curl \
                 python3 python-is-python3