<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1><a id="installation">libvirt Installation</a></h1> <ul id="toc"></ul> <h2><a id="compiling">Compiling a release tarball</a></h2> <p> libvirt uses the standard setup/build/install steps and mandates that the build directory is different from the source directory: </p> <pre> $ xz -dc libvirt-x.x.x.tar.xz | tar xvf - $ cd libvirt-x.x.x $ meson build</pre> <p> The <i>meson</i> script can be given options to change its default behaviour. </p> <p> To get the complete list of the options run the following command: </p> <pre> $ meson configure</pre> <p> When you have determined which options you want to use (if any), continue the process. </p> <p> Note the use of <b>sudo</b> with the <i>ninja install</i> 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. </p> <p> If you are installing to a location that your user <i>does</i> have write access to, then you can instead run the <i>ninja install</i> command without putting <b>sudo</b> before it. </p> <pre> $ meson build <i>[possible options]</i> $ ninja -C build $ <b>sudo</b> <i>ninja -C build install</i></pre> <p> At this point you <b>may</b> have to run ldconfig or a similar utility to update your list of installed shared libs. </p> <h2><a id="building">Building from a GIT checkout</a></h2> <p> The libvirt build process uses Meson build system. By default when the <code>meson</code> 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. </p> <p>To build & install libvirt to your home directory the following commands can be run: </p> <pre> $ meson build --prefix=$HOME/usr $ ninja -C build $ <b>sudo</b> ninja -C build install</pre> <p> 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 </p> <pre> $ meson build -Dsystem=true $ ninja -C build </pre> <p> 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 </p> <pre> $ su - # service libvirtd stop (or systemctl stop libvirtd.service) # /home/to/your/checkout/src/libvirtd </pre> <p> It is also possible to run virsh directly from the source tree using the ./run script (which sets some environment variables): </p> <pre> $ ./run ./tools/virsh .... </pre> </body> </html>