File: compiling.html

package info (click to toggle)
libvirt 5.6.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 240,844 kB
  • sloc: ansic: 584,521; xml: 176,725; sh: 9,912; python: 4,731; perl: 4,343; makefile: 3,321; ml: 465
file content (234 lines) | stat: -rw-r--r-- 8,629 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<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.
      -->
  <!--
        This page was generated at Tue Jul 30 02:04:26 UTC 2019.
      -->
  <head>
    <meta charset="UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <link rel="stylesheet" type="text/css" href="main.css"/>
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/>
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/>
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/>
    <link rel="manifest" href="/manifest.json"/>
    <meta name="theme-color" content="#ffffff"/>
    <title>libvirt: libvirt Installation</title>
    <meta name="description" content="libvirt, virtualization, virtualization API"/>
    <script type="text/javascript" src="js/main.js">
      <!--// forces non-empty element-->
    </script>
  </head>
  <body onload="pageload()">
    <div id="body">
      <div id="content">
        <h1>
          <a 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 id="compiling">Compiling a release tarball</a>
          <a class="headerlink" href="#compiling" title="Permalink to this headline">¶</a>
        </h2>
        <p>
      libvirt uses the standard configure/make/install steps:
    </p>
        <pre>
$ xz -c libvirt-x.x.x.tar.xz | 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>
$ ./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>
$ ./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 id="building">Building from a GIT checkout</a>
          <a class="headerlink" href="#building" title="Permalink to this headline">¶</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/">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>
$ GNULIB_SRCDIR=/path/to/gnulib ./autogen.sh --no-git
    </pre>
        <p>To build &amp; install libvirt to your home
      directory the following commands can be run:
    </p>
        <pre>
$ ./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>
$ ./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>
$ 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>
      </div>
    </div>
    <div id="nav">
      <div id="home">
        <a href="index.html">Home</a>
      </div>
      <div id="jumplinks">
        <ul>
          <li>
            <a href="downloads.html">Download</a>
          </li>
          <li>
            <a href="contribute.html">Contribute</a>
          </li>
          <li>
            <a href="docs.html">Docs</a>
          </li>
        </ul>
      </div>
      <div id="search">
        <form id="simplesearch" action="https://www.google.com/search" enctype="application/x-www-form-urlencoded" method="get">
          <div>
            <input id="searchsite" name="sitesearch" type="hidden" value="libvirt.org"/>
            <input id="searchq" name="q" type="text" size="12" value=""/>
            <input name="submit" type="submit" value="Go"/>
          </div>
        </form>
        <div id="advancedsearch">
          <span>
            <input type="radio" name="what" id="whatwebsite" checked="checked" value="website"/>
            <label for="whatwebsite">Website</label>
          </span>
          <span>
            <input type="radio" name="what" id="whatwiki" value="wiki"/>
            <label for="whatwiki">Wiki</label>
          </span>
          <span>
            <input type="radio" name="what" id="whatdevs" value="devs"/>
            <label for="whatdevs">Developers list</label>
          </span>
          <span>
            <input type="radio" name="what" id="whatusers" value="users"/>
            <label for="whatusers">Users list</label>
          </span>
        </div>
      </div>
    </div>
    <div id="footer">
      <div id="contact">
        <h3>Contact</h3>
        <ul>
          <li>
            <a href="contact.html#email">email</a>
          </li>
          <li>
            <a href="contact.html#irc">irc</a>
          </li>
        </ul>
      </div>
      <div id="community">
        <h3>Community</h3>
        <ul>
          <li>
            <a href="https://twitter.com/hashtag/libvirt">twitter</a>
          </li>
          <li>
            <a href="http://stackoverflow.com/questions/tagged/libvirt">stackoverflow</a>
          </li>
          <li>
            <a href="http://serverfault.com/questions/tagged/libvirt">serverfault</a>
          </li>
        </ul>
      </div>
      <div id="conduct">
            Participants in the libvirt project agree to abide by <a href="governance.html#codeofconduct">the project code of conduct</a></div>
      <br class="clear"/>
    </div>
  </body>
</html>