Requirements¶
Go¶
Incus requires Go 1.22 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
andpids
)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 5.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.
OCI¶
To run OCI containers, Incus currently rely on both skopeo
and umoci
.
Both tools should be available in the user’s PATH
.
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.