File: compiling.html.in

package info (click to toggle)
libvirt 7.0.0-3%2Bdeb11u3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 145,532 kB
  • sloc: ansic: 502,645; xml: 180,512; python: 8,627; sh: 3,992; perl: 2,768; makefile: 509; javascript: 116; cpp: 22
file content (113 lines) | stat: -rw-r--r-- 3,145 bytes parent folder | download
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
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <body>
    <h1><a id="installation">libvirt Installation</a></h1>

    <ul id="toc"></ul>

    <h2><a id="compiling">Compiling a release tarball</a></h2>

    <p>
      libvirt uses the standard setup/build/install steps and mandates
      that the build directory is different from the source directory:
    </p>

    <pre>
$ xz -dc libvirt-x.x.x.tar.xz | tar xvf -
$ cd libvirt-x.x.x
$ meson build</pre>

    <p>
      The <i>meson</i> script can be given options to change its default
      behaviour.
    </p>

    <p>
      To get the complete list of the options run the following command:
    </p>

    <pre>
$ meson configure</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>ninja 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>ninja install</i> command
      without putting <b>sudo</b> before it.
    </p>

    <pre>
$ meson build <i>[possible options]</i>
$ ninja -C build
$ <b>sudo</b> <i>ninja -C build 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></h2>

    <p>
      The libvirt build process uses Meson build system. By default when
      the <code>meson</code> is run from within a GIT checkout, it
      will turn on -Werror for builds. This can be disabled with
      --werror=false, but this is not recommended.
    </p>

    <p>To build &amp; install libvirt to your home
      directory the following commands can be run:
    </p>

    <pre>
$ meson build --prefix=$HOME/usr
$ ninja -C build
$ <b>sudo</b> ninja -C build 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>
$ meson build -Dsystem=true
$ ninja -C build
    </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>
  </body>
</html>