==================== libvirt Installation ==================== .. contents:: Compiling a release tarball --------------------------- libvirt uses the standard setup/build/install steps and mandates that the build directory is different from the source directory: :: $ xz -dc libvirt-x.x.x.tar.xz | tar xvf - $ cd libvirt-x.x.x $ meson build The *meson* script can be given options to change its default behaviour. **Note:** Please ensure that you have the appropriate minimal ``meson`` version installed in your build environment. The minimal version for a specific package can be checked in the top level ``meson.build`` file in the ``meson_version`` field. To get the complete list of the options run the following command: :: $ meson configure When you have determined which options you want to use (if any), continue the process. Note the use of **sudo** with the *ninja install* command below. Using sudo is only required when installing to a location your user does not have write access to. Installing to a system location is a good example of this. If you are installing to a location that your user *does* have write access to, then you can instead run the *ninja install* command without putting **sudo** before it. :: $ meson build [possible options] $ ninja -C build $ sudo ninja -C build install At this point you **may** have to run ldconfig or a similar utility to update your list of installed shared libs. Building from a GIT checkout ---------------------------- The libvirt build process uses Meson build system. By default when the ``meson`` is run from within a GIT checkout, it will turn on -Werror for builds. This can be disabled with --werror=false, but this is not recommended. To build & install libvirt to your home directory the following commands can be run: :: $ meson build --prefix=$HOME/usr $ ninja -C build $ sudo ninja -C build install Be aware though, that binaries built with a custom prefix will not interoperate with OS vendor provided binaries, since the UNIX socket paths will all be different. To produce a build that is compatible with normal OS vendor prefixes, use :: $ meson build -Dsystem=true $ ninja -C build When doing this for day-to-day development purposes, it is recommended not to install over the OS vendor provided binaries. Instead simply run libvirt directly from the source tree. For example to run a privileged libvirtd instance :: $ su - # service libvirtd stop (or systemctl stop libvirtd.service) # /home/to/your/checkout/build/src/libvirtd It is also possible to run virsh directly from the build tree using the ./run script (which sets some environment variables): :: $ pwd /home/to/your/checkout/build $ ./run ./tools/virsh ....