Software:Snappy (package manager)

From HandWiki
Short description: Software deployment system for Linux by Canonical
snapd
Developer(s)Canonical Ltd.
Initial release9 December 2014; 9 years ago (2014-12-09)[1]
Stable release
2.43.1[2] / 14 January 2020; 4 years ago (2020-01-14)
Written inGo, C
Operating systemLinux
LicenseGPLv3 (client), proprietary (server)
Websitesnapcraft.io

Snappy is a software deployment and package management system developed by Canonical for the Linux operating system. The packages, called snaps, and the tool for using them, snapd, work across a range of Linux distributions allowing distribution-agnostic upstream software packaging. Snappy was originally designed for Ubuntu Touch. The system is designed to work for internet of things, cloud and desktop computing.[3]

Functionality

Snap application packages of software are self-contained and work across a range of Linux distributions. This is unlike traditional Linux package management approaches, like APT or YUM, which require specifically adapted packages for each Linux distribution therefore adding delay between application development and its deployment for end-users.[4][5]

Snaps themselves have no dependency on any "app store", can be obtained from any source and can be therefore used for upstream software deployment. When snaps are deployed on Ubuntu and other versions of Linux, the snap store[6] is used as the back-end.

Snaps introduces channels which define which release of a snap is installed and tracked for updates.[7]

Developers can use snaps to create command line tools and background services as well as desktop applications.[8] With snap applications, upgrades via atomic operation or by deltas are possible.[1][9][10][11]

With the use of ‘content snaps’ developers can enable snaps to share programs and data so to reduce library, framework and in general dependency redundancy.[12]

In June 2016, snapd was ported to a wide range of Linux distributions to enable snaps to be used across any Linux distribution, not just the all-snap Ubuntu Core. snapd is also available or in progress for Arch Linux, CentOS, Debian, Fedora, Solus, Manjaro Linux, Linux Mint, OpenEmbedded, Raspbian, OpenWrt and openSUSE.

Each distribution is able to interpret the snap metadata to implement the security or other expectations of the snap in a distribution-specific fashion.[citation needed]

Snapcraft

snapcraft
Developer(s)Canonical Ltd.
Initial release29 October 2015; 8 years ago (2015-10-29)[1]
Stable release
3.9.3[13] / 29 November 2019; 4 years ago (2019-11-29)
Written inPython
Operating systemLinux
LicenseGPLv3
Websitesnapcraft.io

Snapcraft is a tool for developers to package their programs in the Snap format for Snappy.[14]

.snap file format

The snap file format is a single compressed filesystem (based on squashfs format) that is mounted dynamically by the host operating system, together with declarative metadata that is interpreted by the snap system to set up an appropriately shaped secure sandbox or container for that application. The file format extension is .snap.

Usage

Snappy packaging has been deployed in internet of things environments, ranging from consumer-facing products[15] to enterprise device management gateways.[16] Snappy is included by default in Ubuntu desktop images from version 16.04 onwards. Software from Microsoft, i.e. .NET Core 3.1, for Linux is also distributed in the snap format.[17] Snapcraft itself also plans to support Windows OS itself (and macOS is already supported).[18]

Criticism

The developer of the screen capture tool Peek discontinued support for Snap packages in March 2018,[19][20] while continuing support for Flatpak and AppImage, stating that

  • Snap is "still mainly an Ubuntu show", criticizing the fact that snapd is no longer available in the official Arch Linux repository, even though it is available in the community repository of Arch Linux based distribution, Manjaro, and can be installed via pacman or Manjaro's GUI pamac.[21]
  • Using snap is more time-consuming than Flatpak or AppImage for developers,
  • Ubuntu Software Center doesn't take advantage of AppStream data, requiring separate entry data.

Developers and IT systems administrators have voiced complaints that snap is highly unsuitable for mission-critical applications since auto-updates cannot be turned off. This basic feature missing is a design choice of the snap developers, but has led to unexpected downtime when services restart or when buggy software enters the snap distribution system.[22]

Red Hat employee Adam Williamson, while acknowledging his own bias, has criticized Snap for keeping the server side closed-source,[23] not having a mechanism for using third party servers,[24] and having to sign a contributor license agreement to contribute to its development.[25]

Clement Lefebvre (Linux Mint founder and project leader [26][27]) has claimed that snap is biased and has a conflict of interest, reasons cited include it being governed by Canonical and locked to their store, and also that snap works better on Ubuntu than on other distributions.[28]

See also

References

  1. 1.0 1.1 1.2 Shuttleworth, Mark (9 December 2014). "Announcing Ubuntu Core, with snappy transactional updates!". https://www.markshuttleworth.com/archives/1434. 
  2. "Releases · snapcore/snapd". https://github.com/snapcore/snapd/releases. Retrieved 2020-01-14. 
  3. "Snapcraft - Snaps are universal Linux packages". https://snapcraft.io/. 
  4. Upgrading packaged Ubuntu application unreasonably involves upgrading entire OS Bug #578045 on bugs.launchpad.net/ubuntu by John King (2010-05-10)
  5. Linus Torvalds on the problems of distro packaging Linus Torvalds on DebConf 2014
  6. https://snapcraft.io/store
  7. https://snapcraft.io/docs/channels
  8. "Canonical unveils 6th LTS release of Ubuntu with 16.04". Canonical Ltd.. https://insights.ubuntu.com/2016/04/20/canonical-unveils-6th-lts-release-of-ubuntu-with-16-04/. Retrieved 22 April 2016. 
  9. Willis, Nathan (28 January 2015). "Ubuntu Core and Snappy". Linux Weekly News. https://lwn.net/Articles/630660/. Retrieved 7 November 2015. 
  10. "Ubuntu Core". https://ubuntu.com/core. 
  11. Vaughan-Nichols, Steven J.. "Ubuntu Snap takes charge of Linux desktop and IoT software distribution". https://www.zdnet.com/article/ubuntu-snap-takes-charge-of-linux-desktop-and-iot-software-distribution/. 
  12. "The Hunspell Dictionaries Content Snaps | Snapcraft documentation" (in en). https://snapcraft.io/docs/t/the-hunspell-dictionaries-content-snaps/7160. 
  13. "Releases · snapcore/snapcraft". https://github.com/snapcore/snapcraft/releases. Retrieved 2020-01-10. 
  14. Brodkin, Jon. "Adios apt and yum? Ubuntu’s snap apps are coming to distros everywhere". Ars Technica. https://arstechnica.com/information-technology/2016/06/goodbye-apt-and-yum-ubuntus-snap-apps-are-coming-to-distros-everywhere/. Retrieved 13 August 2016. 
  15. Vaughan-Nichols, Stephen J. (11 May 2015). "Ubuntu jumps into Internet of Things with Acer, GE, and Microsoft". ZDNet. https://www.zdnet.com/article/ubuntu-jumps-into-internet-of-things-with-acer-ge-and-microsoft/. Retrieved 7 November 2015. 
  16. Sherman, Jordana. "Snappy Core unlocks IoT value within the Dell Edge Gateway 5000 Series". Canonical Ltd.. https://insights.ubuntu.com/2015/10/21/snappy-core-unlocks-iot-value-within-the-dell-edge-gateway-5000-series/. Retrieved 7 November 2015. 
  17. .NET Core 3.1.0 Preview 2, .NET Foundation, 2019-11-08, https://github.com/dotnet/core/blob/master/release-notes/3.1/preview/3.1.0-preview2-install-instructions.md, retrieved 2019-11-08 
  18. "Release notes: Snapcraft 3.8 | Snapcraft documentation" (in en). https://snapcraft.io/docs/release-notes-snapcraft-3-8. 
  19. "Snap support for Peek screen recorder discontinued". March 25, 2018. https://www.reddit.com/r/Ubuntu/comments/870bcn/snap_support_for_peek_screen_recorder_discontinued/. 
  20. "Peek Gif Screen Recorder Drops Support for Snap App". OMG! Ubuntu!. https://www.omgubuntu.co.uk/2018/03/peek-snap-app-discontinued. 
  21. "Installing snap on Manjaro Linux". https://docs.snapcraft.io/installing-snap-on-manjaro-linux/6807. 
  22. "Disabling automatic refresh for snap from store". https://forum.snapcraft.io/t/disabling-automatic-refresh-for-snap-from-store/707. 
  23. "Why Canonical views the Snap ecosystem as a compelling distribution-agnostic solution". https://www.techrepublic.com/article/why-canonical-views-the-snap-ecosystem-as-a-compelling-distribution-agnostic-solution/. "So, if we were to open source the Snap store, does that actually benefit us in any meaningful way? History shows that perhaps it doesn't. That's not to say that we may not open source in the future. We'll just have to see." 
  24. "Snapd should support custom servers". https://bugs.launchpad.net/snappy/+bug/1593151. 
  25. "On Snappy and Flatpak: business as usual in the Canonical propaganda department". https://www.happyassassin.net/2016/06/16/on-snappy-and-flatpak-business-as-usual-in-the-canonical-propaganda-department/. 
  26. "Q&A: Clement Lefebvre: The man behind Linux Mint". https://www.techworld.com.au/article/529572/q_clement_lefebvre_man_behind_linux_mint. 
  27. "Teams". https://linuxmint.com/teams.php. 
  28. "Monthly News – June 2019". https://blog.linuxmint.com/?p=3766. 

External links