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 manifest
  • Run snapcraft in order to produce the snap
  • Publish 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: