2013-05-03 18:25:37 +04:00
<?xml version="1.0" encoding="UTF-8"?>
2017-07-26 20:01:25 +03:00
<!DOCTYPE html>
2013-05-03 18:25:37 +04:00
< html xmlns = "http://www.w3.org/1999/xhtml" >
2010-12-21 12:38:37 +03:00
< body >
2017-07-26 17:52:42 +03:00
< h1 > < a id = "installation" > libvirt Installation< / a > < / h1 >
2010-12-21 12:38:37 +03:00
< ul id = "toc" > < / ul >
2017-07-26 17:52:42 +03:00
< h2 > < a id = "compiling" > Compiling a release tarball< / a > < / h2 >
2010-12-21 12:38:37 +03:00
< p >
2020-07-17 22:09:25 +03:00
libvirt uses the standard setup/build/install steps and mandates
2020-09-08 23:43:52 +03:00
that the build directory is different from the source directory:
2010-12-21 12:38:37 +03:00
< / p >
< pre >
2016-11-12 01:40:27 +03:00
$ xz -c libvirt-x.x.x.tar.xz | tar xvf -
$ cd libvirt-x.x.x
2020-07-17 22:09:25 +03:00
$ meson build< / pre >
2010-12-21 12:38:37 +03:00
< p >
2020-07-17 22:09:25 +03:00
The < i > meson< / i > script can be given options to change its default
2010-12-21 12:38:37 +03:00
behaviour.
< / p >
< p >
2020-07-17 22:09:25 +03:00
To get the complete list of the options run the following command:
2010-12-21 12:38:37 +03:00
< / p >
< pre >
2020-07-17 22:09:25 +03:00
$ meson configure< / pre >
2010-12-21 12:38:37 +03:00
< p >
When you have determined which options you want to use (if any),
continue the process.
< / p >
< p >
2020-07-17 22:09:25 +03:00
Note the use of < b > sudo< / b > with the < i > ninja install< / i > command
2010-12-21 12:38:37 +03:00
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
2020-07-17 22:09:25 +03:00
access to, then you can instead run the < i > ninja install< / i > command
2010-12-21 12:38:37 +03:00
without putting < b > sudo< / b > before it.
< / p >
< pre >
2020-07-17 22:09:25 +03:00
$ meson build < i > [possible options]< / i >
$ ninja -C build
$ < b > sudo< / b > < i > ninja -C build install< / i > < / pre >
2010-12-21 12:38:37 +03:00
< 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 >
2017-07-26 17:52:42 +03:00
< h2 > < a id = "building" > Building from a GIT checkout< / a > < / h2 >
2010-12-21 12:38:37 +03:00
< p >
2020-07-17 22:09:25 +03:00
The libvirt build process uses Meson build system. By default when
the < code > meson< / code > is run from within a GIT checkout, it
2013-07-04 00:43:11 +04:00
will turn on -Werror for builds. This can be disabled with
2020-07-17 22:09:25 +03:00
--werror=false, but this is not recommended.
2013-07-04 00:43:11 +04:00
< / p >
< p > To build & install libvirt to your home
2012-05-24 19:07:58 +04:00
directory the following commands can be run:
2010-12-21 12:38:37 +03:00
< / p >
< pre >
2020-07-17 22:09:25 +03:00
$ meson build --prefix=$HOME/usr
$ ninja -C build
$ < b > sudo< / b > ninja -C build install< / pre >
2012-05-24 19:07:58 +04:00
< 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 >
2020-07-17 22:09:25 +03:00
$ meson build -Dsystem=true
$ ninja -C build
2012-05-24 19:07:58 +04:00
< / 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 >
2016-11-12 01:40:27 +03:00
$ su -
# service libvirtd stop (or systemctl stop libvirtd.service)
2018-07-07 14:57:30 +03:00
# /home/to/your/checkout/src/libvirtd
2012-05-24 19:07:58 +04:00
< / pre >
< p >
It is also possible to run virsh directly from the source tree
2012-09-14 13:08:54 +04:00
using the ./run script (which sets some environment variables):
2012-05-24 19:07:58 +04:00
< / p >
< pre >
2016-11-12 01:40:27 +03:00
$ ./run ./tools/virsh ....
2012-05-24 19:07:58 +04:00
< / pre >
2010-12-21 12:38:37 +03:00
< / body >
< / html >