Snap
Snap is the package management system available for the wide range of Linux distributions.
Unlike AppImage, Snap requires a daemon (snapd
) installed in the system in order to operate. Under the hood, Snap is based on
SquashFS.
Snap
is Canonical initiative. Usually, applications are distributed via snapcraft store, but it’s not mandatory.
Snap
provides fine-grained control to system resources (e.g. camera, removable media, network, etc.).
The major advantage is plug-in system, which allows to easily integrate Snap
with different languages and build systems (e.g. CMake, autotools, etc.).
The packaging process could be summed up in the following steps:
Install the snapcraft
Run
snapcraft init
Edit the
snap/snapcraft.yml
manifestRun
snapcraft
in order to produce the snapPublish and upload snap, so it could be installed on other systems.
In order to integrate with build process managed with help of the conan, the following steps could be used:
Use deploy generator (or json generator with custom script) to prepare the assets
Use the dump plug-in of snapcraft to simply copy the files deployed on previous step into the
snap