Canonical is reworking Snap application packages on Linux
Snap is a software packaging and distribution platform for Linux developed by Canonical, creators of Ubuntu Linux. Snap applications are more portable than traditional Linux software, and most of them are containerized to prevent some common security issues. However, Snap also has plenty of problems, which might be the reason Canonical is experimenting with a new architecture.
Canonical talked about “the future of Snapcraft” in a new blog post (via omg! ubuntu!), which mostly involves breaking up the Snap framework into smaller and modular components. There aren’t any firm details about what the end result will look like, or if it will be better for the average person installing and using Snap applications. However, it should make creating and maintaining Snap applications easier for app developers and Canonical, which could potentially free up time for Canonical to focus on other aspects of the Snap framework.
Canonical said, “The basic concept revolves around breaking Snapcraft apart – into smaller, even more modular and reusable components that can be utilized across a range of different products. The common foundation for this effort is a set of Craft Libraries, as we have already discussed in the Craft Parts blog post. The theory calls for the use of a generic parts builder based on craft-providers and craft-parts, with added Snapcraft functionality as a separate layer.”
Snap packages are definitely an easier way for applications to be distributed on Linux, as they don’t have to rely on the system’s own package manager, which isn’t always the same across different desktop Linux distributions. For example, if you wanted to make an app for Ubuntu, Fedora, and Arch Linux, you would have to maintain three entirely different distribution methods (PPA, RPM, and Pacman). By comparison, Snap apps work on nearly every modern Linux-based OS: Ubuntu, Arch, Debian, Fedora, Majaro, Pop!_OS, and others.
Snapcraft has been criticized over the years for a variety of issues. Custom repositories or app servers are not supported, so all software has to be distributed through the Canonical’s own Snap store, and Canonical has not released the source code for the Snap store servers. The centralized model isn’t popular with everyone, especially as Canonical has slowly replaced core applications in Ubuntu with Snap versions (such as Chromium). Linux Mint blocks the installation of Snap applications entirely, and some other distributions have endorsed Flatpak as an alternative. Canonical’s blog post didn’t mention anything about supporting third-party stores and repositories.