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 >
2019-11-06 17:55:12 +03:00
libvirt uses the standard configure/make/install steps and mandates
that the build directory is different that 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
2019-11-06 17:55:12 +03:00
$ mkdir build & & cd build
$ ../configure< / pre >
2010-12-21 12:38:37 +03:00
< p >
The < i > configure< / i > script can be given options to change its default
behaviour.
< / p >
< p >
To get the complete list of the options it can take, pass it the
< i > --help< / i > option like this:
< / p >
< pre >
2019-11-06 17:55:12 +03:00
$ ../configure < i > --help< / i > < / 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 >
Note the use of < b > sudo< / b > with the < i > make 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 > make install< / i > command
without putting < b > sudo< / b > before it.
< / p >
< pre >
2019-11-06 17:55:12 +03:00
$ ../configure < i > [possible options]< / i >
2016-11-12 01:40:27 +03:00
$ make
$ < b > sudo< / b > < i > make 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 >
The libvirt build process uses GNU autotools, so after obtaining a
checkout it is necessary to generate the configure script and Makefile.in
2012-05-24 19:07:58 +04:00
templates using the < code > autogen.sh< / code > command. By default when
the < code > configure< / code > script 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
--disable-werror, but this is not recommended.
< / 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 >
2016-11-12 01:40:27 +03:00
$ ./autogen.sh --prefix=$HOME/usr
$ make
$ < b > sudo< / b > make 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 >
2016-11-12 01:40:27 +03:00
$ ./autogen.sh --system
$ make
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 >