<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <!-- This file is autogenerated from compiling.html.in Do not edit this file. Changes will be lost. --> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" type="text/css" href="main.css" /> <link rel="SHORTCUT ICON" href="32favicon.png" /> <title>libvirt: libvirt Installation</title> <meta name="description" content="libvirt, virtualization, virtualization API" /> </head> <body> <div id="header"> <div id="headerLogo"></div> <div id="headerSearch"> <form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><div> <input id="query" name="query" type="text" size="12" value="" /> <input id="submit" name="submit" type="submit" value="Search" /> </div></form> </div> </div> <div id="body"> <div id="menu"> <ul class="l0"><li> <div> <a title="Front page of the libvirt website" class="inactive" href="index.html">Home</a> </div> </li><li> <div> <a title="Details of new features and bugs fixed in each release" class="inactive" href="news.html">News</a> </div> </li><li> <div> <a title="Applications known to use libvirt" class="inactive" href="apps.html">Applications</a> </div> </li><li> <div> <a title="Get the latest source releases, binary builds and get access to the source repository" class="inactive" href="downloads.html">Downloads</a> </div> </li><li> <div> <a title="Information for users, administrators and developers" class="active" href="docs.html">Documentation</a> <ul class="l1"><li> <div> <span class="active">Compiling</span> </div> </li><li> <div> <a title="Information about deploying and using libvirt" class="inactive" href="deployment.html">Deployment</a> </div> </li><li> <div> <a title="Overview of the logical subsystems in the libvirt API" class="inactive" href="intro.html">Architecture</a> </div> </li><li> <div> <a title="Description of the XML formats used in libvirt" class="inactive" href="format.html">XML format</a> </div> </li><li> <div> <a title="Hypervisor specific driver information" class="inactive" href="drivers.html">Drivers</a> </div> </li><li> <div> <a title="Reference manual for the C public API" class="inactive" href="html/index.html">API reference</a> </div> </li><li> <div> <a title="Bindings of the libvirt API for other languages" class="inactive" href="bindings.html">Language bindings</a> </div> </li><li> <div> <a title="Working on the internals of libvirt API, driver and daemon code" class="inactive" href="internals.html">Internals</a> </div> </li><li> <div> <a title="A guide and reference for developing with libvirt" class="inactive" href="devguide.html">Development Guide</a> </div> </li><li> <div> <a title="Command reference for virsh" class="inactive" href="virshcmdref.html">Virsh Commands</a> </div> </li></ul> </div> </li><li> <div> <a title="User contributed content" class="inactive" href="http://wiki.libvirt.org">Wiki</a> </div> </li><li> <div> <a title="Frequently asked questions" class="inactive" href="http://wiki.libvirt.org/page/FAQ">FAQ</a> </div> </li><li> <div> <a title="How and where to report bugs and request features" class="inactive" href="bugs.html">Bug reports</a> </div> </li><li> <div> <a title="How to contact the developers via email and IRC" class="inactive" href="contact.html">Contact</a> </div> </li><li> <div> <a title="Available test suites for libvirt" class="inactive" href="testsuites.html">Test suites</a> </div> </li><li> <div> <a title="Miscellaneous links of interest related to libvirt" class="inactive" href="relatedlinks.html">Related Links</a> </div> </li><li> <div> <a title="Overview of all content on the website" class="inactive" href="sitemap.html">Sitemap</a> </div> </li></ul> </div> <div id="content"> <h1> <a name="installation" shape="rect" id="installation">libvirt Installation</a> </h1> <ul><li> <a href="#compiling">Compiling a release tarball</a> </li><li> <a href="#building">Building from a GIT checkout</a> </li></ul> <h2> <a name="compiling" shape="rect" id="compiling">Compiling a release tarball</a> </h2> <p> libvirt uses the standard configure/make/install steps: </p> <pre xml:space="preserve"> $ gunzip -c libvirt-x.x.x.tar.gz | tar xvf - $ cd libvirt-x.x.x $ ./configure</pre> <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 xml:space="preserve"> $ ./configure <i>--help</i></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>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 xml:space="preserve"> $ ./configure <i>[possible options]</i> $ make $ <b>sudo</b> <i>make 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 name="building" shape="rect" id="building">Building from a GIT checkout</a> </h2> <p> The libvirt build process uses GNU autotools, so after obtaining a checkout it is necessary to generate the configure script and Makefile.in templates using the <code>autogen.sh</code> command. By default when the <code>configure</code> script is run from within a GIT checkout, it will turn on -Werror for builds. This can be disabled with --disable-werror, but this is not recommended. </p> <p> Libvirt takes advantage of the <a href="http://www.gnu.org/software/gnulib/" shape="rect">gnulib</a> project to provide portability to a number of platforms. This is normally done dynamically via a git submodule in the <code>.gnulib</code> subdirectory, which is auto-updated as needed when you do incremental builds. Setting the environment variable <code>GNULIB_SRCDIR</code> to a local directory containing a git checkout of gnulib will let you reduce local disk space requirements and network download time, regardless of which actual commit you have in that reference directory. </p> <p> However, if you are developing on a platform where git is not available, or are behind a firewall that does not allow for git to easily obtain the gnulib submodule, it is possible to instead use a static mode of operation where you are then responsible for updating the git submodule yourself. In this mode, you must track the exact gnulib commit needed by libvirt (usually not the latest gnulib.git) via alternative means, such as a shared NFS drive or manual download, and run this any time libvirt.git updates the commit stored in the .gnulib submodule:</p> <pre xml:space="preserve"> $ GNULIB_SRCDIR=/path/to/gnulib ./autogen.sh --no-git </pre> <p>To build & install libvirt to your home directory the following commands can be run: </p> <pre xml:space="preserve"> $ ./autogen.sh --prefix=$HOME/usr $ make $ <b>sudo</b> make 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 xml:space="preserve"> $ ./autogen.sh --system $ make </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 xml:space="preserve"> $ su - # service libvirtd stop (or systemctl stop libvirtd.service) # /home/to/your/checkout/daemon/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 xml:space="preserve"> $ ./run ./tools/virsh .... </pre> </div> </div> <div id="footer"> <p id="sponsor"> Sponsored by:<br /><a href="http://et.redhat.com/"><img src="et.png" alt="Project sponsored by Red Hat Emerging Technology" /></a></p> </div> </body> </html>