Snap package manager Page

Snap Package Manager



Return to Package managers, Linux package managers, Linux

* SnapCraft.io - Snappy - Snap Store - Snap Package Manager - Installing snap on Raspbian - Snap installation on Raspbian

Installing


Installing snap on:
* Ubuntu - Debian
* CentOS - RHEL - Fedora
* Raspbian

* whereis snapd
* sudo systemctl enable --now snapd.socket
* sudo ln -s /var/lib/snapd/snap /snap


"The app store for Linux - Publish your app for Linux users — for Linux desktop, Linux cloud, and Linux Internet of Things."


Snap Commands



=Snap

=
snap: The snap command lets you install snaps, configure snaps, refresh snaps and remove snaps.

Snaps are Linux packages that work across many different Linux distributions, enabling secure delivery and operation of the latest Linux apps and Linux utilities.

Usage: snap [...]

Commands can be classified as follows:

Basics


Snap basics:
* snap find, snap info, snap install, snap list, snap remove
* More: snap refresh, snap revert, snap switch, snap disable, snap enable


History


Snap history:
* snap changes, snap tasks, snap abort, snap watch


Daemons


Snap daemonds:
* snap services, snap start, snap stop, snap restart, snap logs


Commands


Snap commands:
* snap alias, snap aliases, snap unalias, snap prefer


Configuration


Snap configuration:
* snap get, snap set, snap unset, snap wait


Account


Snap account:
* snap login, snap logout, snap whoami


Permissions


Snap permissions:

* snap connections, snap interface, snap connect, snap disconnect


Snapshots


Snap snapshots:

* snap saved, snap save, snap check-snapshot, snap restore, snap forget


Other


Snap other:

* snap version, snap warnings, snap okay, snap ack, snap known, snap model, snap create-cohort


Development


Snap development:

* snap run, snap pack, snap try, snap download, snap prepare-image


For more information about a command, run 'snap help '.

For a short summary of all snap commands, run 'snap help --all'.



=Install

=
* sudo snap install hello-world
* hello-world


=Refresh

=
* sudo snap refresh
** All snaps up to date.


=Remove

=
* sudo snap remove hello-world


=Search

=
* snap search

* eg. sudo snap search helm
** Name Version Publisher Notes Summary
** helm 3.3.0 snapcrafters classic The Kubernetes package manager




=Version

=
* snap version
** snap 2.45.3.1
** snapd 2.45.3.1
** series 16
** raspbian 9
** kernel 4.19.66-v7+





Fair Use Source: https://snapcraft.io


Snap packages have become increasingly popular since they provide an easy way to install software on any Linux distribution. This a brief overview of the Snap package format.

NOTE TO ARCH USERS: When I installed snapd I meant to mention this. If If AppArmor isn't enabled in your system then all snaps will run in devel mode which mean they will have same, unrestricted access to your system as apps installed from Arch Linux repositories.

$ systemctl enable --now apparmor.service
$ systemctl enable --now snapd.apparmor.service



{{short description|Software deployment system for Linux by Canonical}}
{{Infobox software
| name = snapd
| logo = Snapcraft_green-red_hex-small.png
| logo alt = Snapcraft Logo
| screenshot =
| screenshot alt =
| caption =
| collapsible =
| author =
| developer = Canonical (company)|Canonical Ltd.
| released = {{Start date and age|2014|12|09|df=yes}}
| discontinued =
| latest release version = 2.45.3.1{{cite web|url=https://github.com/snapcore/snapd/releases|title=Releases · snapcore/snapd|website=GitHub|accessdate=2020-08-04}}
| latest release date = {{Start date and age|2020|08|03|df=yes}}
| repo = https://github.com/snapcore/snapd
| programming language = Go (programming language)|Go, C (programming language)|C
| operating system = Linux
| platform =
| size =
| language =
| language count =
| language footnote =
| license = GNU General Public License#Version 3|GPLv3 (client), Proprietary software|proprietary (server)
| alexa =
| website = {{URL|https://snapcraft.io}}
| standard =
| AsOf =
}}

Snap is a software Package manager|packaging and Software deployment|deployment system developed by Canonical (company)|Canonical for the Linux operating system. The packages, called snaps, and the tool for using them, snapd, work across a range of Linux distributions and allow Upstream (software development)|upstream software developers to distribute their applications directly to users. Snaps are self-contained applications running in a sandbox with mediated access to the host system. Snap was originally released for Cloud computing|cloud applications{{Cite web|last1=Shuttleworth|first1=Mark|date=9 December 2014|title=Announcing Ubuntu Core, with snappy transactional updates!|url=https://www.markshuttleworth.com/archives/1434|access-date=2020-08-07}} but was later ported to work for Internet of things|Internet of Things devices{{Cite web|title=Ubuntu Core and Snappy [LWN.net]|url=https://lwn.net/Articles/630660/|access-date=2020-08-08|website=lwn.net}}{{Cite web|title=Canonical unveils Snappy Ubuntu Core, a lightweight operating system for your home - ExtremeTech|url=https://www.extremetech.com/mobile/197801-canonical-unveils-snappy-ubuntu-core-a-lightweight-operating-system-for-your-home|access-date=2020-08-08|website=www.extremetech.com}} and desktop{{Cite web|last=Bhartiya|first=Swapnil|date=2015-04-27|title=Is Ubuntu moving away from .deb packages? Here is the complete story|url=https://www.cio.com/article/2914850/is-ubuntu-moving-away-from-deb-packages-here-is-the-complete-story.html|access-date=2020-08-08|website=CIO|language=en}}{{Cite web|last=Vaughan-Nichols|first=Steven J.|title=The future of Linux desktop application delivery is Flatpak and Snap|url=https://www.zdnet.com/article/the-future-of-linux-desktop-application-delivery-is-flatpak-and-snap/|access-date=2020-08-08|website=ZDNet|language=en}} applications too.

Functionality



=Snap Store

=
The Snap Store allows developers to publish their applications directly to users.{{Cite web|last=S|first=James|last2=August 6|first2=ers in Software on|last3=2019|last4=Pst|first4=8:53 Am|title=Why Canonical views the Snap ecosystem as a compelling distribution-agnostic solution|url=https://www.techrepublic.com/article/why-canonical-views-the-snap-ecosystem-as-a-compelling-distribution-agnostic-solution/|access-date=2020-08-05|website=TechRepublic|language=en}} With traditional Linux package management approaches like Advanced Packaging Tool|APT or Yellowdog Updater, Modified|YUM, the applications are packaged and distributed as part of the operating system. This creates a delay between application development and its deployment for end-users.[https://bugs.launchpad.net/ubuntu/+bug/578045 Upgrading packaged Ubuntu application unreasonably involves upgrading entire OS Bug #578045] on bugs.launchpad.net/ubuntu by John King (2010-05-10)[https://www.youtube.com/watch?v=5PmHRSeA2c8&t=581 Linus Torvalds on the problems of distro packaging] Linus Torvalds on DebConf 2014 In contrast, application developers can publish their applications in the Snap Store and get them directly to users without any intervention from distribution maintainers.

All apps uploaded to the Snap Store undergo automatic testing, including a malware scan. However, Snap apps do not receive the same level of verification as software in the regular Ubuntu archives. In one case in May 2018, two applications by the same developer were found to contain a cryptocurrency miner which ran in the background during application execution. When this issue was found, Canonical removed the applications from the Snap Store and transferred ownership of the Snaps to a trusted third-party which re-published the Snaps without the miner present.{{Cite web|title=How Canonical Is Improving Ubuntu Linux Security|url=https://www.eweek.com/security/how-canonical-is-improving-ubuntu-linux-security|access-date=2020-08-08|website=eWEEK}}{{Cite web|date=2018-05-13|title=Malware Found on the Ubuntu Snap Store|url=https://www.omgubuntu.co.uk/2018/05/ubuntu-snap-malware|access-date=2020-07-19|website=OMG! Ubuntu!|language=en-GB}}{{Cite web|last=Canonical|date=2018-05-15|title=Trust and security in the Snap Store|url=https://snapcraft.io/blog/trust-and-security-in-the-snap-store|access-date=2020-08-05|website=Snapcraft|language=en}} Although the Snap sandbox reduces the impact of a malicious app, Canonical recommends users only install Snaps from publishers trusted by the user.{{Cite web|title=Packages for Ubuntu|url=https://ubuntu.com/about/packages|access-date=2020-08-07|website=Ubuntu|language=en}}{{Cite web|date=2018-03-27|title=Bogus apps in store|url=https://forum.snapcraft.io/t/bogus-apps-in-store/4703/9|access-date=2020-08-07|website=snapcraft.io|language=en-US}}

Because packages in the Snap Store are maintained by developers themselves, distribution maintainers cannot ensure packages meet quality standards and are timely updated. In one case, Microsoft left an outdated version of Skype in the Snapcraft store for over a year.{{Cite web|date=2019-07-09|title=Hey Microsoft, why is the Skype Snap app hopelessly outdated?|url=https://www.omgubuntu.co.uk/2019/07/skype-snap-app-no-update|access-date=2020-07-19|website=OMG! Ubuntu!|language=en-GB}}

Although the Snap Store by Canonical is currently the only existing store for snaps, Snap itself can be used without a store. Snap packages can be obtained from any source, including the website of a developer. Red Hat employee Adam Williamson and Linux Mint project lead Clement Lefebre have criticized Canonical for keeping some server side parts of the Snap Store closed-source.{{Cite web|title=On Snappy and Flatpak: business as usual in the Canonical propaganda department|url=https://www.happyassassin.net/2016/06/16/on-snappy-and-flatpak-business-as-usual-in-the-canonical-propaganda-department/|access-date=June 5, 2019|website=Happyassassin}} Clement states that this creates a conflict of interest which harms the neutrality of Snap given that Canonical develops Ubuntu.{{Cite web|title=Monthly News – June 2019|url=https://blog.linuxmint.com/?p=3766|access-date=October 23, 2019|website=blog.linuxmint.com}}

=Universal Linux packages

=
Snaps are Portable application|self-contained packages that work across a range of Linux distributions. This is unlike traditional Linux package management approaches, which require specifically adapted packages for each Linux distribution.{{Cite web|last=June 21|first=Jack Wallen in Open Source on|last2=2016|last3=Pst|first3=8:13 Am|title=Canonical changes the game by announcing universal snap packages|url=https://www.techrepublic.com/article/canonical-changes-the-game-by-announcing-universal-snap-packages/|access-date=2020-08-08|website=TechRepublic|language=en}}{{Cite web|last=Kepes|first=Ben|date=2016-06-14|title=Snap! Do the Linux distros finally agree on something?|url=https://www.computerworld.com/article/3082766/snap-do-the-linux-distros-finally-agree-on-something.html|access-date=2020-08-08|website=Computerworld|language=en}}

The snap file format is a single compressed File system|filesystem using the squashfs|SquashFS format with the extension .snap. This filesystem contains the application, libraries it depends on, and declarative metadata. This metadata is interpreted by snapd to set up an appropriately shaped secure Sandbox_(computer_security)|sandbox for that application. After installation, the snap is mounted by the host operating system and decompressed on the fly when the files are used.{{Cite web|last=ReadySpace|date=2019-11-14|title=A technical comparison between the snap and the Flatpak formats|url=https://readyspace.co.id/en/a-technical-comparison-between-the-snap-and-the-flatpak-formats/|access-date=2020-08-05|website=ReadySpace Indonesia|language=en-US}}{{Cite web|last=McKay|first=Dave|title=How to Work with Snap Packages on Linux|url=https://www.howtogeek.com/660193/how-to-work-with-snap-packages-on-linux/|access-date=2020-08-05|website=How-To Geek|language=en-US}} Although this has the advantage that snaps use less disk space, it also means some large applications start slower.{{Cite web|date=2019-10-29|title=Squashfs performance effect on snap startup time|url=https://forum.snapcraft.io/t/squashfs-performance-effect-on-snap-startup-time/13920|access-date=2020-08-05|website=snapcraft.io|language=en-US}}

A significant difference between Snap and other universal Linux packaging formats such as Flatpak is that Snap supports any class of Linux application such as desktop applications, server tools, IoT apps and even system services such as the printer driver stack.{{Cite web|date=2018-03-09|title=Call for testing: OpenPrinting's printing-stack-snap (Printing in a Snap)|url=https://forum.snapcraft.io/t/call-for-testing-openprintings-printing-stack-snap-printing-in-a-snap/4406|access-date=2020-08-05|website=snapcraft.io|language=en-US}}{{cite web|title=Canonical unveils 6th LTS release of Ubuntu with 16.04|url=https://insights.ubuntu.com/2016/04/20/canonical-unveils-6th-lts-release-of-ubuntu-with-16-04/|accessdate=22 April 2016|website=Ubuntu Insights|publisher=Canonical (company)|Canonical Ltd.}} As a result of this, Snap relies on systemd for features such as running socket-activated system services in a Snap.{{cite web|title=Services and daemons|url=https://snapcraft.io/docs/services-and-daemons}} This causes Snap to only work on distributions that use this Init|init system.{{Cite web|title=WSL2- Ubuntu 20.04 Snap store doesn't work due to systemd dependency · Issue #5126 · microsoft/WSL|url=https://github.com/microsoft/WSL/issues/5126|access-date=2020-08-07|website=GitHub|language=en}}

=Configurable sandbox

=
Applications in a Snap run in a container with limited access to the host system. Using Interfaces, Users can give an application mediated access to additional features of the host such as recording audio, accessing USB devices and recording video.{{Cite web|title=Supported interfaces {{!}} Snapcraft documentation|url=https://snapcraft.io/docs/supported-interfaces|access-date=2020-08-05|website=Snapcraft|language=en}}{{Cite web|last=ReadySpace|date=2019-06-06|title=Snapcraft confinement & interfaces|url=https://readyspace.com.cn/snapcraft-confinement-interfaces/|access-date=2020-08-05|website=ReadySpace China|language=zh-hans}}{{Cite web|last=ReadySpace|date=2018-11-02|title=A guide to snap permissions and interfaces|url=https://readyspace.com.hk/a-guide-to-snap-permissions-and-interfaces/|access-date=2020-08-05|website=ReadySpace Hong Kong|language=en-US}} These interfaces mediate regular Linux API's so that applications can function in the sandbox without needing to be rewritten. Desktop applications can also use the XDG Desktop Portals, a standardized API originally created by the Flatpak project to give sandboxed desktop applications access to host resources.{{Cite web|title=Flatpak's XDG-Desktop-Portal Adds Initial Support For Snaps - Phoronix|url=https://www.phoronix.com/scan.php?page=news_item&px=XDG-Desktop-Portal-Snapped|access-date=2020-08-05|website=www.phoronix.com}}{{Cite web|title=Desktop Integration — Flatpak documentation|url=https://docs.flatpak.org/en/latest/desktop-integration.html?highlight=portals#portals|access-date=2020-08-05|website=docs.flatpak.org}} These portals often provide a better user experience compared to the native Linux API's because they prompt the user for permission to resources such as a webcam at the time the application uses them. The downside is that applications and toolkits need to be rewritten in order to use these newer API's.

The Snap sandbox also supports sharing data and Unix domain socket|Unix sockets between Snaps.{{Cite web|title=The content interface|url=https://snapcraft.io/docs/content-interface|access-date=2020-04-29|website=Snapcraft|language=en}} This is often used to share common libraries and application frameworks between Snaps to reduce the size of Snaps by avoiding duplication.{{Cite web|date=2017-06-11|title=Snappy Is Finally Doing Something About Super Large App Sizes|url=https://www.omgubuntu.co.uk/2017/06/gnome-platform-snap-development|access-date=2020-08-07|website=OMG! Ubuntu!|language=en-GB}}{{Cite web|title=Bundling KDE|url=https://archive.fosdem.org/2017/schedule/event/desktops_bundling_kde/|access-date=2020-08-07|website=archive.fosdem.org|language=en}}

The Snap sandbox heavily relies on the AppArmor Linux Security Module from the upstream Linux kernel. Because only one Linux Security Modules|Linux Security Module (LSM) can be active at the same time, the Snap sandbox is much less secure when another LSM is enabled. As a result, on distributions such as Fedora which enable Security-Enhanced Linux|SELinux by default, the Snap sandbox is heavily degraded. Although Canonical is working with many other developers and companies to make it possible for multiple LSM's to run at the same time, this solution is still a long time away.{{Cite web|date=2020-07-11|title=How Are SNAPS claiming to have no internet plug regulated?|url=https://forum.snapcraft.io/t/how-are-snaps-claiming-to-have-no-internet-plug-regulated/18755/25|access-date=2020-08-06|website=snapcraft.io|language=en-US}}{{Cite web|title=LSM stacking and the future [LWN.net]|url=https://lwn.net/Articles/804906/|access-date=2020-08-06|website=lwn.net}}{{Cite web|last=Johansen|first=John|date=3 February 2019|title=Containers with Different Security Modules|url=https://archive.fosdem.org/2019/schedule/event/containers_lsm/|url-status=live|archive-url=|archive-date=|access-date=|website=}}

The Snap sandbox prevents snapped desktop applications from accessing the themes of the host operating system to prevent compatibility issues. In order for Snaps to use a theme, it also needs to be packaged in a separate Snap. Many popular themes are packaged by the Snap developers{{Cite web|date=2020-02-21|title=How to use the system GTK theme via the gtk-common-themes snap|url=https://forum.snapcraft.io/t/how-to-use-the-system-gtk-theme-via-the-gtk-common-themes-snap/6235|access-date=2020-08-06|website=snapcraft.io|language=en-US}} but some themes are not supported yet{{Cite web|title=Kubuntu 20.04 LTS Review {{!}} ORDINATECHNIC|url=https://www.ordinatechnic.com/distribution-reviews/Kubuntu/kubuntu-2004-lts-review|access-date=2020-07-19|website=www.ordinatechnic.com}} and uncommon themes have to be installed manually. If a theme is not available as a Snap package, users have to resort to choosing the best matching theme available.{{Cite web|date=2020-06-18|title=How to Change Snap App Theme on Ubuntu (With Examples)|url=https://www.omgubuntu.co.uk/2020/06/change-snap-app-theme|access-date=2020-08-06|website=OMG! Ubuntu!|language=en-GB}} Work is ongoing to make it easier for third parties to package themes in a Snap and to automatically install uncommon system themes.{{Cite web|date=2020-05-25|title=Automatic theme snap installation notes|url=https://forum.snapcraft.io/t/automatic-theme-snap-installation-notes/14274/4|access-date=2020-08-06|website=snapcraft.io|language=en-US}}

=Automatic and atomic updates

=
Multiple times a day, snapd checks for available updates of all Snaps and installs them in the background using atomic operation. Updates can be reverted{{Cite web|date=2017-03-08|title=How to revert to a previous version of a snap package? wekan in this case|url=https://costales.github.io/posts/how-to-revert-to-previous-version-of/|access-date=2020-08-05|website=costales.github.io|language=en-us}}{{Cite web|title=A Beginners Guide to Snaps in Linux - Part 1|url=https://www.tecmint.com/install-snap-in-linux/|access-date=2020-08-05|website=www.tecmint.com|language=en-US}} and use delta encoding to reduce their download size.{{Cite web|title=Snapcraft - Snaps are universal Linux packages|url=https://snapcraft.io/|website=Snapcraft}}{{cite news|last1=Willis|first1=Nathan|date=28 January 2015|title=Ubuntu Core and Snappy|work=Linux Weekly News|url=https://lwn.net/Articles/630660/|accessdate=7 November 2015}}{{Cite web|last=Vaughan-Nichols|first=Steven J.|title=Ubuntu Snap takes charge of Linux desktop and IoT software distribution|url=https://zdnet.com/article/ubuntu-snap-takes-charge-of-linux-desktop-and-iot-software-distribution/|website=ZDNet}}

Publishers can release and update multiple versions of their software in parallel using channels. Each channel has a specific track and risk, which indicate the version and stability of the software released on that channel. When installing an application, Snap defaults to using the latest/stable channel, which will automatically update to new major releases of the software when they become available. Publishers can create additional channels to give users the possibility to stick to specific major releases of their software. For example, a 2.0/stable channel would allow users to stick to the 2.0 version of the software and only get minor updates without the risk of backwards incompatible changes. When the publisher releases a new major version in a new channel, users can manually update to the next version when they choose.{{Cite web|title=Controlling snap releases with channels, tracks and branches – Part 1|url=https://ubuntu.com/blog/controlling-snap-releases-with-channels-tracks-and-branches-part-1|access-date=2020-08-07|website=Ubuntu|language=en}}{{Cite web|title=Controlling snap releases with channels, tracks and branches – Part 2|url=https://ubuntu.com/blog/controlling-snap-releases-with-channels-tracks-and-branches-part-2|access-date=2020-08-07|website=Ubuntu|language=en}}{{Cite web|last=Prakash|first=Abhishek|title=Using Snap Packages In Ubuntu & Other Linux [Complete Guide]|url=https://itsfoss.com/use-snap-packages-ubuntu-16-04/|access-date=2020-08-07|language=en-US}}

Although automatic updates cannot be turned off, there are many ways to configure updates to suit particular needs. User can choose to remain on a specific major version of the software by specifying the channel, they can configure the update interval to have time to manually check updates, and they can hold updates for up to 60 days. In addition, updates are also automatically disabled on metered connections.{{Cite web|last=Logix|title=How To Change Snap Refresh (Update) Schedule|url=https://www.linuxuprising.com/2019/07/how-to-change-snap-refresh-update.html|access-date=2020-08-07|website=Linux Uprising Blog|language=en-us}}{{Cite web|last=Pope|first=Alan|date=3 March 2020|title=Controlling Snap Updates|url=https://www.youtube.com/watch?v=gVZOBgTDJWc|url-status=live|archive-url=|archive-date=|access-date=|website=}} Even with these controls, a number of users have voiced their complaints about the lack of an option to turn automatic updates completely off.{{Cite web|title=Disabling automatic refresh for snap from store|url=https://forum.snapcraft.io/t/disabling-automatic-refresh-for-snap-from-store/707|access-date=July 31, 2019}}

=Snapcraft

=
{{Infobox software
| name = snapcraft
| logo = Snapcraft_green-red_hex-small.png
| logo alt = Snapcraft Logo
| screenshot =
| screenshot alt =
| caption =
| collapsible =
| author =
| developer = Canonical (company)|Canonical Ltd.
| released = {{Start date and age|2015|10|29|df=yes}}
| discontinued =
| latest release version = 4.1.1{{cite web|url=https://github.com/snapcore/snapcraft/releases|title=Releases · snapcore/snapcraft|website=GitHub|accessdate=2020-07-17}}
| latest release date = {{Start date and age|2020|07|09|df=yes}}
| repo = https://github.com/snapcore/snapcraft
| programming language = Python (programming language)|Python
| operating system = Linux, macOS, Microsoft Windows
| platform =
| size =
| language =
| language count =
| language footnote =
| license = GNU General Public License#Version 3|GPLv3
| alexa =
| website = {{URL|https://snapcraft.io}}
| standard =
| AsOf =
}}

Snapcraft is a tool for developers to package their programs in the Snap format.{{cite news|last1=Brodkin|first1=Jon|title=Adios apt and yum? Ubuntu’s snap apps are coming to distros everywhere|url=https://arstechnica.com/information-technology/2016/06/goodbye-apt-and-yum-ubuntus-snap-apps-are-coming-to-distros-everywhere/|accessdate=13 August 2016|work=Ars Technica}} It runs on any Linux distribution supported by Snap, macOS and Microsoft Windows.{{Cite web|last=Nestor|first=Marius|title=Ubuntu's Snapcraft Snap Creator Tool Will Soon Get a Windows Installer|url=https://news.softpedia.com/news/ubuntu-s-snapcraft-snap-creator-tool-will-soon-get-a-windows-installer-527336.shtml|access-date=2020-08-08|website=softpedia|language=english}} Snapcraft builds the packages in a Virtual machine|Virtual Machine using Multipass, in order to ensure the result of a build is the same, regardless of which distribution or operating system it is built on.{{Cite web|last=ReadySpace|date=2019-03-15|title=Make your snap development faster|url=https://readyspace.com.cn/make-your-snap-development-faster/|access-date=2020-08-05|website=ReadySpace China|language=zh-hans}} Snapcraft supports a great number of build tools and programming languages such as Go (programming language)|Go, Java (programming language)|Java, JavaScript, Python (programming language)|Python, C (programming language)|C/C++ and Rust (programming language)|Rust. It also allows importing application metadata from multiple sources such as AppStream, git, shell scripts and setup.py files.{{Cite web|last=Nestor|first=Marius|title=Canonical Releases Snapcraft 3.1 Snap Creator Tool with Various Improvements|url=https://news.softpedia.com/news/canonical-releases-snapcraft-3-1-snap-creator-tool-with-various-improvements-524761.shtml|access-date=2020-08-05|website=softpedia|language=english}}{{Cite web|title=Using external metadata {{!}} Snapcraft documentation|url=https://snapcraft.io/docs/using-external-metadata|access-date=2020-08-05|website=Snapcraft|language=en}}

Adoption


Snap initially only supported the all-Snap Ubuntu Core distribution but in June 2016, it was ported to a wide range of Linux distributions to become a format for universal Linux packages.{{Cite web|title=Ubuntu’s container-style Snap app packages now work on other Linux distributions|url=https://social.techcrunch.com/2016/06/14/ubuntus-container-style-snap-app-packages-now-work-on-other-linux-distributions/|access-date=2020-08-08|website=TechCrunch|language=en-US}} Snap requires functionality (systemd), available in Linux, some other Unix-like systems do not have, so e.g. FreeBSD doesn't have Snap. Chrome OS doesn't support Snap directly, only through Linux distros installed in it that suppport Snap, such as Gallium OS.{{Cite web|title=Installing snap on GalliumOS {{!}} Snapcraft documentation|url=https://snapcraft.io/docs/installing-snap-on-galliumos|access-date=2020-08-18|website=Snapcraft|language=en}}

A number of Linux distributions support Snap out of the box such as Ubuntu (and e.g. Kubuntu),{{Cite web|last=Hoffman|first=Chris|last2=PCWorld {{!}}|date=2016-04-18|title=Ubuntu 16.04 will support 'Snaps' alongside Deb packages for improved software installation|url=https://www.pcworld.com/article/3056668/ubuntu-1604-will-support-snaps-alongside-deb-packages-for-improved-software-installation.html|access-date=2020-08-08|website=PCWorld|language=en}} Manjaro,{{Cite web|last=Evangelho|first=Jason|title=Manjaro Linux 18.1 Is Officially Released, And You Have A New Choice To Make|url=https://www.forbes.com/sites/jasonevangelho/2019/09/12/manjaro-linux-181-is-officially-released-and-you-have-a-new-choice-to-make/|access-date=2020-08-08|website=Forbes|language=en}} Zorin OS,{{Cite web|title=And the next version of Zorin OS is… {{!}} The official Zorin Blog|url=https://zoringroup.com/blog/2019/03/20/and-the-next-version-of-zorin-os-is/|access-date=2020-08-05|language=en-US}} KDE Neon,{{Cite web|date=2017-02-10|title=KDE Neon to Support Snap Apps in Plasma Discover|url=https://www.omgubuntu.co.uk/2017/02/kde-neon-intergrating-snap-apps|access-date=2020-08-05|website=OMG! Ubuntu!|language=en-GB}} Solus (operating system)|Solus{{Cite web|last=Strobl|first=Joshua|title=Solus 3 Released|url=https://getsol.us/2017/08/15/solus-3-released/|access-date=2020-08-05|website=Solus|language=en}} and Li-f-e.{{Cite web|last=cyberorg|date=2020-07-07|title=Li-f-e: Installing more applications|url=https://cyberorg.wordpress.com/2020/07/07/li-f-e-installing-more-applications/|access-date=2020-08-05|website=Li-f-e: Linux for Education {{!}} Enterprise|language=en}} Snap is also available for many other distributions such as Arch Linux, CentOS, Debian, Elementary OS, Fedora (operating system)|Fedora, GalliumOS, Kali Linux, Linux Mint, OpenEmbedded, Parrot OS|Parrot Security OS, Pop!_OS, Raspbian, Red Hat Enterprise Linux and openSUSE.{{Cite web|title=Installing snapd {{!}} Snapcraft documentation|url=https://snapcraft.io/docs/installing-snapd|access-date=2020-08-05|website=Snapcraft|language=en}}

A number of notable Desktop software development companies publish their software in the Snap Store, including Google,{{Cite web|date=2020-07-08|title=Google and Canonical bring Flutter apps to Linux and the Snap Store|url=https://venturebeat.com/2020/07/08/google-canonical-ubuntu-flutter-apps-linux-support/|access-date=2020-08-05|website=VentureBeat|language=en-US}} JetBrains,{{Cite web|title=Install IntelliJ IDEA on Ubuntu with Snaps – IntelliJ IDEA Blog {{!}} JetBrains|url=https://blog.jetbrains.com/idea/2017/11/install-intellij-idea-with-snaps/|access-date=2020-08-05|website=JetBrains Blog|language=en-US}} KDE,{{Cite web|title=Month of KDE Applications Snaps – KDE neon Developers' Blog|url=https://blog.neon.kde.org/index.php/2019/02/13/month-of-kde-applications-snaps/|access-date=2020-08-05|language=en-US}} Microsoft (for Linux versions of e.g. .NET Core 3.1,{{Citation|title=.NET Core 3.1.0 Preview 2|date=2019-11-08|url=https://github.com/dotnet/core/blob/master/release-notes/3.1/preview/3.1.0-preview2-install-instructions.md|publisher=.NET Foundation|access-date=2019-11-08}} Visual Studio Code, Skype,{{Cite web|last=Vaughan-Nichols|first=Steven J.|title=Use Ubuntu's snap to install Skype on any Linux desktop|url=https://www.zdnet.com/article/use-ubuntus-snap-to-install-skype-on-any-linux-desktop/|access-date=2020-08-08|website=ZDNet|language=en}} and PowerShell), Mozilla{{Cite web|last=Hoffman|first=Chris|last2=PCWorld {{!}}|date=2016-04-25|title=Mozilla will provide Firefox as a Snap package for Ubuntu, cutting out the middleman|url=https://www.pcworld.com/article/3060143/mozilla-will-provide-firefox-as-a-snap-package-for-ubuntu-cutting-out-the-middleman.html|access-date=2020-08-05|website=PCWorld|language=en}} and Spotify.{{Cite web|date=2017-12-30|title=Spotify Now Available as a Snap App on Ubuntu|url=https://www.omgubuntu.co.uk/2017/12/spotify-now-available-snap-app-ubuntu|access-date=2020-08-05|website=OMG! Ubuntu!|language=en-GB}} Snaps are also used in Internet of Things |Internet-of-Things environments, ranging from consumer-facing products{{cite news|url=https://www.zdnet.com/article/ubuntu-jumps-into-internet-of-things-with-acer-ge-and-microsoft/|title=Ubuntu jumps into Internet of Things with Acer, GE, and Microsoft|date=11 May 2015|work=ZDNet|ref=sjvn-iot|last1=Vaughan-Nichols|first1= Stephen J.|accessdate=7 November 2015}} to enterprise device management gateways{{cite web|url =https://insights.ubuntu.com/2015/10/21/snappy-core-unlocks-iot-value-within-the-dell-edge-gateway-5000-series/|title= Snappy Core unlocks IoT value within the Dell Edge Gateway 5000 Series|website= Ubuntu Insights|publisher= Canonical (company)|Canonical Ltd.|last1= Sherman|first1= Jordana|accessdate= 7 November 2015}} and Communications satellite|satellite communication networks.{{Cite web|date=2018-03-14|title=LimeSDR Mini takes off in satellites|url=http://linuxgizmos.com/limesdr-mini-takes-off-in-satellites/|access-date=2020-08-05|website=LinuxGizmos.com}}{{Cite web|title=Ubuntu Core 18 released for secure, reliable IoT devices|url=https://ubuntu.com/blog/ubuntu-core-18-released-for-secure-reliable-iot-devices|access-date=2020-08-05|website=Ubuntu|language=en}} Finally, Snap is also used by developers of server applications such as InfluxDB,{{Cite web|title=Install influxdb for Linux using the Snap Store|url=https://snapcraft.io/influxdb|access-date=2020-08-05|website=Snapcraft|language=en}} Kata Containers,{{Cite web|last=Nestor|first=Marius|title=You Can Now Install Kata Containers VM as a Snap on Ubuntu, Other Linux Distros|url=https://news.softpedia.com/news/you-can-now-install-kata-containers-as-a-snap-on-ubuntu-and-other-linux-distros-522138.shtml|access-date=2020-08-05|website=softpedia|language=english}} Nextcloud{{Cite web|last=April 27|first=Jack Wallen in Cloud on|last2=2020|last3=Pst|first3=8:50 Am|title=How to install Nextcloud with SSL using snap|url=https://www.techrepublic.com/article/how-to-install-nextcloud-with-ssl-using-snap/|access-date=2020-08-08|website=TechRepublic|language=en}} and Travis CI.{{Cite web|title=Install travis-worker for Linux using the Snap Store|url=https://snapcraft.io/travis-worker|access-date=2020-08-05|website=Snapcraft|language=en}}

In 2019, Canonical decided to switch the Chromium web browser in future Ubuntu releases from an APT package to a Snap. They explained that Snap made it much easier to support Chromium on all supported Ubuntu releases. This allowed them to focus engineering resources on other parts of the Ubuntu desktop.{{Cite web|last=Vaughan-Nichols|first=Steven J.|title=Ubuntu opens the door to talking with Linux Mint about Snap|url=https://www.zdnet.com/article/ubuntu-opens-the-door-to-talking-with-linux-mint-about-snap/|access-date=2020-08-08|website=ZDNet|language=en}} As a result of this decision, Ubuntu derivatives such as Linux Mint had to choose between maintaining their own version of the Chromium package or switching to the snapped version of Chromium maintained by Canonical. Clement Lefebre, Linux Mint founder and project leader,{{Cite web|title=Q&A: Clement Lefebvre: The man behind Linux Mint|url=https://techworld.com.au/article/529572/q_clement_lefebvre_man_behind_linux_mint|access-date=January 7, 2020|website=techworld.com.au}} cited this as the reason why Linux Mint 20 blocks users from installing Snap.{{Cite web|last=Vaughan-Nichols|first=Steven J.|title=Linux Mint dumps Ubuntu Snap|url=https://www.zdnet.com/article/linux-mint-dumps-ubuntu-snap/|access-date=2020-08-08|website=ZDNet|language=en}} Since Snap is still available in the Linux Mint repositories, users can still install it after manually removing the restrictions.{{Cite web|last=Kumar|first=Sarvottam|date=2020-06-12|title=How To Enable Snap And Install Snap Packages On Linux Mint 20?|url=https://fossbytes.com/how-to-enable-snap-and-install-snap-packages-on-linux-mint-20/|access-date=2020-08-08|website=Fossbytes|language=en-US}}

GNOME Software removed Snap support in July of 2019, due to code quality issues, lack of integration (specifically, that the user can't tell what Snap is doing after they click "install" and that it generally ignores GNOME's settings), and the fact that it competes with the GNOME-supported Flatpak standard.{{Cite web|title=GNOME Software Moving Forward With Disabling Snap Plugin - Phoronix|url=https://www.phoronix.com/scan.php?page=news_item&px=GNOME-Software-Dropping-Snap|access-date=2020-07-19|website=www.phoronix.com}} This doesn't mean Snaps can't be installed in Fedora or other GNOME Software using distributions, only that Snap needs to be installed first. Ubuntu also used GNOME Software up to Ubuntu 20.04, and vice versa, there Flatpak support can be added.

See also


{{Portal|Free and open-source software}}
* Flatpak is a distribution-agnostic standard packaging Linux desktop applications.
* AppImage
* Nix package manager|Nix
* Portable application creators
* ROX Desktop|ROX uses directories (Application directory|AppDirs) as application bundles.
* Zero Install, a similar project

References


{{Reflist}}

External links


* [https://snapcraft.io/ Official website]
* [https://ubuntu.com/blog/a-technical-comparison-between-snaps-and-debs A technical comparison between snaps and debs]

{{Linux package management systems template}}

Category:Linux installation software
Category:Linux package management-related software
Category:Package management systems
Category:Software distribution


YouTube Videos


Cloud Monk recommends the following YouTube video:

{{youtube>JRQaLyAesEg}}


GitHub Tags


GitHub Tags:



External Sites



=Main

=

=Interesting Articles

=
* https://cloud.google.com/sdk/docs/downloads-snap


=Support Resources, FAQs, Q&A, Docs, Blogs

=
* https://github.com/search?q=snap+package+manager - GitHub Search
* https://docs.microsoft.com/en-us/search/?terms=snap%20package%20manager - Microsoft Documentation Search
* https://aws.amazon.com/search/?searchQuery=snap+package+manager - AWS Search
* https://cloud.google.com/s/results?q=snap%20package%20manager - GCP Search
* https://stackoverflow.com/search?q=snap+package+manager - StackOverflow Search
* https://reddit.com/search?q=snap+package+manager - Reddit Search
* https://quora.com/search?q=snap+package+manager - Quora Search
* https://medium.com/search?q=snap+package+manager - Medium Blog Search

=Search Engines

=
* https://duckduckgo.com/?q=snap+package+manager - DuckDuckGo Search
* https://mojeek.com/search?q=snap+package+manager - Mojeek Search
* https://qwant.com/?q=snap+package+manager - Qwant Search
* https://bing.com/search?q=snap+package+manager - Bing Search
* https://search.yahoo.com/search?p=snap+package+manager - Yahoo Search
* https://google.com/search?q=snap+package+manager - Google Search

=Repos and Registries

=
Package Managers Artifact Registries and Repos:
* https://github.com/search?q=snap+package+manager - GitHub Search
* https://hub.docker.com/search?q=snap%20package%20manager&type=image - Docker Hub Search
* https://pkgs.org/search/?q=snap%20package%20manager
* https://chocolatey.org/packages?q=snap+package+manager - Chocolatey Search - Chocolatey Package Manager Search
* https://formulae.brew.sh/formula - Homebrew Search - Homebrew Package Manager Search
* https://search.maven.org/search?q=snap%20package%20manager - Maven Search - Maven Package Manager Search
* https://mvnrepository.com/search?q=snap+package+manager - Maven Repo Search - Maven Package Manager Search
* https://plugins.gradle.org/search?term=snap+package+manager - Gradle Search - Gradle Package Manager Search
* https://www.npmjs.com/search?q=snap%20package%20manager - NPM Search - NPM Node Package Manager Search
* https://pypi.org/search/?q=snap+package+manager - PyPI Search - PyPI Python Package Index Search
* https://www.nuget.org/packages?q=snap+package+manager - Nuget Search - Nuget Package Manager Search
* https://rubygems.org/search?&query=snap+package+manager - RubyGem Search - RubyGem Package Manager Search

=Courses

=
* https://pluralsight.com/search/?q=snap+package+manager - Pluralsight Courses
* https://udemy.com/courses/search/?q=snap+package+manager - Udemy Courses
* https://acloudguru.com/blog/search?s=snap+package+manager - ACloudGuru Courses
* https://linkedin.com/learning/search?keywords=snap+package+manager - LinkedIn Learning Courses
* https://coursera.org/search?query=snap%20package%20manager - Coursera Courses

=Books

=
* https://amazon.com/s?k=snap+package+manager - Amazon Search
* https://audible.com/search?keywords=snap+package+manager - Audible Search

=Vidcasts-Podcasts

=
* https://podcasts.google.com/search/snap%20package%20manager - Google Podcast Search
* https://open.spotify.com/search/snap%20package%20manager - Spotify Podcast Search
* https://tunein.com/search/?query=snap%20package%20manager - TuneIn.com Podcast Search
* https://podbean.com/site/Search/index?v=snap+package+manager - PodBean Podcast Search
* https://youtube.com/results?search_query=snap+package+manager - YouTube Search

{{footer navbar}}