Fresh Linux Applications On Demand
by Alan Pope on 28 August 2018
Traditionally Linux users have relied on central distribution-maintained repositories to get new software. With six-month or longer spans between releases, this meant many users just put up with old versions of applications & libraries. In many cases newer software was just missing from the archives.
Modern applications iterate quickly, releasing new versions on a faster cadence than the distributions that shipped them. In some cases exceptions were made to Linux archive policies, to cater for faster app development cycles. Many developers switched to shipping their latest releases as direct downloads, additional repositories or ‘PPAs’ (personal package archives) which users must discover and add to their system manually.
In some cases, users voted with their USB keys and switched to ‘rolling’ Linux distributions which serviced the ‘want it now’ culture more readily. Rolling distributions such as Arch Linux don’t need to wait for a release window to ship software, but keep up to date with the latest builds at a relentless pace.
Running a rolling release as a daily driver isn’t a panacea though, as not only are the applications fresh, but the libraries and other fundamental components they sit on are updated frequently too. This can be problematic for non-technical users to keep up with. Following a deeply technical blog and pasting obscure terminal commands to get a system working isn’t everyone’s cup of tea. Contrary to what rolling distribution maintainers (and users) will tell you, not everyone wants to be a system admin.
Many users want the best of both worlds, and with snaps they can get it. Install a popular Linux distribution, and trust those maintainers to keep base packages stable and secure for the long term. On top of that, install fresh applications from vendors via the Snap Store.
The Snap Store provides four default channels per application. Each channel has a perceived risk-level associated with it. Developers can publish multiple versions of their application through edge, beta, candidate and stable channels. Users subscribe to the risk level they’re comfortable on, with ‘stable’ being the default.
The choice of application version landing in the channels is the discretion of the developer. But typically the ‘stable’ channel contains the currently supported stable release. The ‘edge ‘ channel is often used for nightly builds, or builds per commit to the upstream project. It can be a wild ride to subscribe to the edge channel, as you’re running the very latest application build, working or not.
The ‘beta’ and ‘candidate’ channels are optional, but allow the developer to support their application release process closely. Eager users can subscribe to the beta channel, to get potentially less risky builds than ‘edge’. Developers can publish pre-release builds to ‘candidate’ from which contributors can install and report issues.
The Chromium web browser is available as a snap, and has multiple releases available to install.
$ snap info chromium name: chromium summary: Chromium web browser, open-source version of Chrome publisher: canonical contact: https://forum.snapcraft.io/ license: Apache-2.0 AND BSD-3-Clause AND LGPL-2.0 AND LGPL-2.1 AND MIT AND MS-PL AND (GPL-2.0+ OR LGPL-2.1+ OR MPL-1.1) description: | An open-source browser project that aims to build a safer, faster, and more stable way for all Internet users to experience the web. snap-id: XKEcBqPM06H1Z7zGOdG5fbICuf8NWK5R channels: stable: 68.0.3440.106 (412) 150MB - candidate: 68.0.3440.106 (412) 150MB - beta: 69.0.3497.57 (440) 152MB - edge: 70.0.3528.4 (445) 153MB -
snap install chromium
or use the graphical store front to get the latest stable release or
snap install chromium --edge
to dive right into the fire-hose of updates in the latest unstable builds.
In addition, developers can create short-lived ‘hidden’ branches of their application to land in temporary channels. These can enable enthusiastic users to test bug fixes, new features or user interface changes, before they land in channels with more users.
The Snap Store gives better release control to developers, flexibility and stability to users, and the latest builds to enthusiasts.