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