Below are a few recommendations for packagers of Incus.
Following those recommendations should provide a more predictable experience across Linux distributions.
It’s usually a good idea to at least split things into an
The latter allows for installing just the
incus command line tool without bringing the daemon and its dependencies.
Additionally, it may be useful to have an
incus-tools package with some of the less commonly used tools like
Two groups should be provided:
incus-adminwhich grants access to the
unix.socketsocket and effectively grants full control over Incus.
incuswhich grants access to the
user.socketsocket which provides users with a restricted Incus project.
The following assumes the use of
systemd. Distributions not using
systemd should try to stick to a similar naming scheme but will likely
see some differences on things like socket activation.
incus.serviceis the main unit that starts and stops the
incus.socketis the socket-activation unit for the
incus.serviceunit. If present,
incus.serviceshould not be made to start on its own.
incus-user.serviceis the unit responsible for starting and stopping the
incus-user.socketis the socket-activation unit for the
incus-user.serviceunit. If present,
incus-user.serviceshould not be made to start on its own.
incusd activateifneededcommand to trigger daemon startup if it is required. It also calls
incusd shutdownto handle orderly shutdown of instances on host shutdown.
incus-user daemons should be kept outside of the user’s
The same is true of
incus-agent which needs to be available in the daemon’s
PATH but not be visible to users.
The main binary that should be made visible to users is
On top of those, the following optional binaries may also be made available:
fuidshift(should be kept to root only)
lxd-to-incus(should be kept to root only)