Snap

Snap[1] is a software deployment and package management for Linux available at least since 2015[2] with support for channels[3] and parallel installs [4].

Snaps are basically an application compiled together with its dependencies and libraries – providing a sandboxed environment for the application to run. These are easier and faster to install, can receive latest updates and is confined from the OS and other apps.

## Basic operations

[edit | edit source]

* Installation: `sudo apt install snapd`[5]
* Install your first application: `snap install hello`
* Remove an application: `snap remove hello-world`
* Search for your application: `snap find SNAP_TO_SEARCH`
* List snaps: `snap list`
* Show Info: `snap info SNAP_NAME`
* Update your snaps: `sudo snap refresh`

## Snapshots and Roll Back

[edit | edit source]

* Take a snapshot: `snap save`
* Roll Back (including data): `sudo snap revert hello`

## Channels

[edit | edit source]

* Change channel: `sudo snap refresh hello --channel=beta`

## Activities

[edit | edit source]

* Read snap source code: https://github.com/snapcore/snapd
* Enable snaps in Fedora: `sudo dnf install snapd` and `sudo systemctl enable --now snapd.socket`

## See also

[edit | edit source]

* Snapcraft
* Ubuntu
* docker containers

1. ↑ https://github.com/snapcore/snapd
2. ↑ https://github.com/snapcore/snapd/releases/tag/0.1-0ubuntu1
3. ↑ https://snapcraft.io/docs/channels
4. ↑ https://snapcraft.io/docs/parallel-installs
5. ↑ https://tutorials.ubuntu.com/tutorial/basic-snap-usage#1