Bases¶
This reference details the available bases for snaps and the requirements for using them across the different snap types.
Base snaps¶
There are six supported base snaps:
Name |
Description |
Latest snapcraft track with support |
|---|---|---|
built from Ubuntu 26.04 LTS |
9.x |
|
built from Ubuntu 24.04 LTS |
8.x |
|
built from Ubuntu 22.04 LTS |
8.x |
|
built from Ubuntu 20.04 LTS |
8.x |
|
built from Ubuntu 18.04 ESM |
7.x |
|
built from Ubuntu 16.04 ESM, not to be confused with core16 (see below) |
4.x |
|
an empty base that’s useful with fully statically linked snaps and when testing |
8.x |
Older releases of core were occasionally referred to as core 16, but core
and core16 are two distinct packages.
Warning
core16 is not a supported base. With no stable release, its beta and candidate releases are classed as experimental.
The Support schedule details the support timeline for ESM releases.
base¶
The base key in a project file defines:
the feature set used by Snapcraft
the
snapcraft.yamlschemathe environment where the snap is built if
build-baseisn’t definedwhich base snap is used at runtime
The base must be defined in all snaps except for base, snapd, and kernel snaps.
The base must be a supported base.
build-base¶
The build-base key defines the environment where the snap will be
built.
build-base can only be defined for the following scenarios:
Bare base snaps¶
build-base must be a supported base when
base: bare is defined.
Devel builds¶
build-base must be devel when base is unstable.
Unstable means that the base snap has not been released to the stable
channel.
Snaps with a devel build base must have a grade of devel and cannot
be promoted to stable or candidate channels.
Kernel snaps¶
build-base must be a supported base when
type: kernel is defined.
See How to build a kernel snap for details on how to
use build-base for kernel snaps.