Requirements#
Go#
LXD requires Go 1.19 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,ipcandmount)Seccomp
Native Linux AIO (
io_setup(2), etc.)
The following optional features also require extra kernel options:
Namespaces (
userandcgroup)AppArmor (including Ubuntu patch for mount mediation)
Control Groups (
blkio,cpuset,devices,memory,pidsandnet_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 set it up, you can
run make deps.
LXD itself also uses a number of (usually packaged) C libraries:
libacl1libcap2liblz4(fordqlite)libuv1(fordqlite)libsqlite3>= 3.25.0 (fordqlite)
Make sure you have all these libraries themselves and their development
headers (-dev packages) installed.