Requirements#
Go#
Incus requires Go 1.20 or higher and is only tested with the Golang compiler.
We recommend having at least 2GiB of RAM to allow the build to complete.
Kernel requirements#
The minimum supported kernel version is 5.4.
Incus requires a kernel with support for:
Namespaces (
pid
,net
,uts
,ipc
andmount
)Seccomp
Native Linux AIO (
io_setup(2)
, etc.)
The following optional features also require extra kernel options:
Namespaces (
user
andcgroup
)AppArmor (including Ubuntu patch for mount mediation)
Control Groups (
blkio
,cpuset
,devices
,memory
,pids
andnet_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#
Incus requires LXC 4.0.0 or higher with the following build options:
apparmor
(if using Incus’ 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)#
Incus uses cowsql
for its database, to build and set it up, you can
run make deps
.
Incus itself also uses a number of (usually packaged) C libraries:
libacl1
libcap2
libuv1
(forcowsql
)libsqlite3
>= 3.25.0 (forcowsql
)
Make sure you have all these libraries themselves and their development
headers (-dev
packages) installed.