Ubuntu Snap

Introduction
An Ubuntu Snap package, or just Snap is a distribution format similar to AppImage in that it is intended to be a "universal installable package" to deploy software on Linux systems. Snaps were introduced by Ubuntu but they are intended to run on all Linux distributions as long as the Snap daemon, or, is available on the target system.

A Snap package has two main characteristics:
 * Programs are sandboxed so they do not interfere with the rest of the operating system.
 * Programs are updated automatically in the background in order to get the newest version of the application.

For other ways of installing the software, see Installing on Linux.

Installation
The use of Snaps is experimental. The current Snaps are generated and hosted by volunteers.

On all systems where Snaps are to be installed, the Snap daemon must be installed first. The package is normally called.

Debian/Ubuntu
For Debian/Ubuntu and similar systems which use the APT manager the daemon is installed as follows:

To install the stable version of the Snap use:

To install the development version of the Snap use:

Manjaro
To install the stable version of the Snap use:

To install the development version of the Snap use:

Advanced
The following commands are geared towards users that are familiar with git and have a locally cloned repository of the upstream FreeCAD repository.

To find out the latest upstream revision number (also known as 'HEAD'):

To translate the current snap development version in to a revision number (make sure you're within your cloned FreeCAD repository as mentioned above):

\ grep -e '^\s\+latest/edge'

Note: the above bash script 1 liner assumes user has 'edge' (nightly) installed

The difference between HEAD and the snap edge revision numbers indicates the amount of revisions trailing behind upstream the snap development (edge) is.

Taking it a step further, if you want a short summary of the commits between the current snap edge and HEAD:

\ grep -e '^\s\+latest/edge'

Note: The output will indicate what commits are not in the current 'edge' (but will be on the next nightly update).

Links
More information about the current efforts to deal with Snaps:
 * 0.19 Snap Preview needs "testers", older Snap by.
 * Discussion: State of the snap (Snap Packaging), newer version of the Snap by.


 * AppImage - another self-contained 'binary' like format to run FreeCAD
 * Flatpak