Skip to content

Instantly share code, notes, and snippets.

@bureado
Created June 21, 2018 00:04
Show Gist options
  • Save bureado/792037b71229db3c37975e70e8a9c54a to your computer and use it in GitHub Desktop.
Save bureado/792037b71229db3c37975e70e8a9c54a to your computer and use it in GitHub Desktop.
Post-modern Linux packaging: additional reading

Post-modern Linux packaging: additional reading

Summary

This document compiles 2018 coverage around post-modern packaging technologies for Linux, including packaging formats like Snaps and Flatpaks, systems like Nix and Guix and full distros such as Atomic or Clear Linux.

This curation and commentary are current as of 18 June 2018. The curation was prepared by José Miguel Parrella (@bureado) as part of his session at Open Source Summit Japan: Package Management and Distribution in a Cloud World.

We compile these resources in an effort to provide individual developers and organizations with current coverage on the state-of-the-art and motivations of the current post-modern packaging landscape with the intention to increase readiness in experimenting with, evaluating and potentially adopting said technologies.

Meta

There are some themes that appear in coverage around post-modern packaging, and, particularly, in community commentary around them.

For example, there's extensive discussion on the future of mainstream distros, the many challenges with the current centralized repo model, generally negative sentiment around the departure from Linux mainstays such as FHS, Sys-V init, LSB or XDG and other elements which we cover here.

Packaging formats and systems

Introduction

While deb and rpm have become pervasive in the APT and RPM systems, other package formats have existed in Linux for over a decade. Some defunct like Autopackage or Listaller, others reinvented like AppImage (née klik, then Portable Linux Apps) and Zero Install.

Many post-modern package formats are becoming optimized for distributing an application with its entire dependencies, potentially running in some form of isolation. As a result, packages have less provisions for metadata or maintainer scripts.

Package formats weren't portable in the past and aren't very portable today. For example, snaps and flatpak have high affinity to their package manager (e.g., snapd) and to a reference distro such as Ubuntu or Fedora. There's been some public discourse around distro portability, but no defined standard or experience bar.

Coexistence

In virtually all mainstream distros and most use cases, post-modern package formats and systems are co-existing with mainstream APT or RPM. As a result, cross-system tools such as GNOME Software (PackageKit) continue to support an expansive list of backends.

Use cases

There seems to be a surge of applications in each system. For example, many proprietary software vendors that ship a tightly controlled graphical application (Skype, Slack, etc.) have been shipping snaps lately. Conversely, complex projects such as GNOME have been closely working with Flatpaks who have also been serving an interesting use case of Wine applications.

Snaps & flatpaks

Distros and applications beyond package managers

More resources

Social discussion

Throughout this document, we've linked to industry coverage, commentary and formal sources as well as, sometimes, Reddit/forum discussions. As much as possible, we tried to perform sentiment analysis across all the Reddit discussions. Here's a list of Reddit threads where the comments were arguably more lively than the actual information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment