Requirements#
Go#
LXD requires Go 1.18 or higher and is only tested with the golang compiler.
We recommend having at least 2GB of RAM to allow the build to complete.
Kernel requirements#
The minimum supported kernel version is 5.4.
LXD requires a kernel with support for:
Namespaces (pid, net, uts, ipc and mount)
Seccomp
The following optional features also require extra kernel options:
Namespaces (user and cgroup)
AppArmor (including Ubuntu patch for mount mediation)
Control Groups (blkio, cpuset, devices, memory, pids and net_prio)
CRIU (exact details to be found with CRIU upstream)
As well as any other kernel feature required by the LXC version in use.
LXC#
LXD requires LXC 4.0.0 or higher with the following build options:
apparmor (if using LXD’s apparmor support)
seccomp
To run recent version of various distributions, including Ubuntu, LXCFS should also be installed.
QEMU#
For virtual machines, QEMU 6.0 or higher is required.
Additional libraries (and development headers)#
LXD uses dqlite
for its database, to build and setup it, you can
run make deps
.
LXD itself also uses a number of (usually packaged) C libraries:
libacl1
libcap2
liblz4 (for
dqlite
)libuv1 (for
dqlite
)libsqlite3 >= 3.25.0 (for
dqlite
)
Make sure you have all these libraries themselves and their development headers (-dev packages) installed.