Distribution packaging

This page describes the rationale behind the libvirt distribution packaging in RPM format. The RPM specfile provided with libvirt targets all Fedora and RHEL releases. It is split up into a number of sub-RPMs in order to facilitate minimal installations, targetting specific feature sets.

Real packages

The so called "real" packages provide the actual file payloads related to libvirt. If very specific / targetted functionality is required, then applications can depend on one or more of these real packages.

libvirt-client
This package provides the main libvirt.so library along with the virsh command line tool. If a C based application only wants to be able to manage remote hypervisors, this is all that they need depend on
libvirt-devel
This package provides the header files and libraries required to compile and link C applications using libvirt
libvirt-python
This package provides the Python binding to the C libraries. It will pull in the libvirt-client RPM. If a Python application only wants to be able to manage remote hypervisors, this is all that they need depend on
libvirt-daemon
This package provides server side libvirtd daemon, which is required in order to manage any stateful hypervisors (currently QEMU, KVM, Xen, LXC and UML).
libvirt-daemon-config-network
This package provides the standard configuration files for setting up a NAT based network
libvirt-daemon-config-nwfilter
This package provides the standard configuration files for network filter rules for ensuring clean VM traffic.

Virtual packages

The virtual packages provide convenient targets for application dependencies to pull in functionality related to specific hypervisors. Since the packaging of the libvirt-daemon RPM is expected to change in the future to split each hypervisor driver out into a separate RPM, applications are strongly recommended to depend on one of the following virtual packages, instead of depending directly on libvirt-daemon

libvirt
This package, simply pulls in every single other server side RPM. If an application wants to ensure all possible libvirt drivers are installed, this is what they should depend on
libvirt-daemon-qemu
This package pulls in the server side daemon, drivers and the QEMU TCG binaries required to provide emulation of non-native architectures
libvirt-daemon-kvm
This package pulls in the server side daemon, drivers and the KVM binaries required to provide hardware accelerated virtualization of the native architectures
libvirt-daemon-lxc
This package pulls in the server side daemon and drivers required to run native Linux containers
libvirt-daemon-uml
This package pulls in the server side daemon and drivers required to run User Mode Linux. The application must still provide the actual UML binary kernels
libvirt-daemon-xen
This package pulls in the server side daemon and drivers required to run guests on the Xen hypervisor.
libvirt-qemu
This package pulls in the server side daemon, drivers and the QEMU TCG binaries required to provide emulation of non-native architectures
libvirt-kvm
This package pulls in the server side daemon, drivers and the KVM binaries required to provide hardware accelerated virtualization of the native architectures
libvirt-lxc
This package pulls in the server side daemon, drivers and default configuration files required to run native Linux containers
libvirt-uml
This package pulls in the server side daemon, drivers and default configuration files required to run User Mode Linux. The application must still provide the actual UML binary kernels
libvirt-xen
This package pulls in the server side daemon, drivers and default configuration files required to run guests on the Xen hypervisor.