Innovative Linux Package Managers

Flatpak

The Flatpak [5] package management format provides a runtime base for desktop applications in a protected environment (sandbox). The runtime environment comes with all the required libraries and dependencies. Flatpak packages that have non-standard dependencies need to include them to be able to operate in the runtime environment. This strategy inevitably leads to substantial redundancies, especially in terms of libraries, so Flatpak packages take up considerably more disk space than conventional applications.

Flathub (Figure 5) is a distribution-independent platform for distributing Flatpak packages. However, Linux distributions can also run their own repositories containing Flatpaks. Many distributions already support this format and provide the corresponding runtime environment in the basic installation. In this case, you can integrate Flatpak packages directly into the operating system via the Flathub repository [6].

Figure 5: Flathub provides a central repository for Flatpaks.

To do this, use the Install button available on the Flathub page. You then need to install the actual program via the distribution's own application management system. During this process, the program displays details of the selected Flatpak (Figure 6). This means that, before installing a new Flatpak, you can see its size and the actual space it takes up on your mass storage.

Figure 6: When installing a Flatpak, numerous details are displayed.

After that you can start the application directly with your distributions's application manager. The graphical application manager on the Linux derivative you use lets you delete Flatpaks from the system using the uninstall routine. You can trigger updates at the prompt, using the sudo flatpak update command to update all Flatpaks that exist on the system in one fell swoop.

Because Flatpak packages run in a sandbox, you need to grant them additional rights to use system components as required. The Flatseal [7] tool helps you do this; it is also integrated into the system as a Flatpak. Flatseal enables convenient rights management that allows application-specific access to various components via slide controls (Figure 7).

Figure 7: Flatseal lets you customize the access rights of the Flatpak applications.

Snap

Primarily developed by Canonical, Snap [8] is similar to Flatpak, but it lets you retrieve applications from a repository centrally managed by Canonical. Snap packages – aka snaps – are also executed in a sandbox and require the runtime environment to be installed up front. They can be used in any Linux distribution that supports Canonical's package format.

Like Flatpak, Snap offers the advantage that you can use two or more different program versions of individual applications simultaneously on the same computer system. But snaps also have the disadvantage that the space used on your mass storage devices is massive due to the many redundant dependencies and libraries. Sometimes this redundancy is noticeable in the form of longer loading times when starting a Snap application. Like Flatpaks, you can assign snaps specific rights, for example, for access to certain directories.

Snap packages can be obtained from the Snapcraft.io [9] website and installed using the sudo snap install PACKAGE command. Alternatively, depending on the distribution you use, you can use app stores to install and manage snaps. On top of this, numerous distributions have their own Snap Store graphical front ends. The runtime environment is preinstalled on Ubuntu variants from Ubuntu 18.04 "Bionic Beaver" and some other distributions, but can easily be added retroactively on many other distributions. Snap Store [10], which is based on the GTK toolkit, contains only snaps. You can add new packages using the Install button (Figure 8).

Figure 8: The Snap Store supports easy management of snaps.

Permissions can be assigned to Snap packages individually by clicking Permissions in the top right corner of the program window. In the window that opens, simply define the numerous permissions with the slide controls. For example, you can grant the application the right to access hardware components in this way (Figure 9).

Figure 9: Snap applications let you conveniently set access privileges in a graphical tool.

Clicking on the trash icon in the primary window of the Snap Store removes the respective application. On top of this, the matching menu items, automatically generated at install time, disappear. You can update snaps at the command line. The command for updating all Snap packages on the system is sudo snap refresh, while specifying a name with this command only updates the specific package.

Conclusions

AppImage, Flatpak, and Snap give Linux users three innovative, cross-distribution package management systems to choose from. They support far more flexible use than the traditional package managers.

Flatpaks and Snaps also offer the advantages of running in protected environments and being easy to update. However, this comes at the cost of massive disk space use due to the redundant components and the required runtime environment.

AppImages, on the other hand, only need to be granted execution rights and can then be used immediately. However, they do not support any security mechanisms, which is why you should obtain AppImage packages only from absolutely trustworthy sources. Which of the new package formats you prefer in individual cases ultimately depends entirely on your personal priorities.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • bauh

    The bauh package manager can cope with Flatpaks, Snaps, AppImages, AUR, and native web apps.

  • unsnap

    If you want to move away from Ubuntu's Snap package format, the unsnap script removes snaps from your computer and replaces them with Flatpaks where possible.

  • Systemd Flatpak Updates

    You can automate Flatpak updates without a package manager using systemd's services and timers.

  • Introduction

    This month in Linux Voice.

  • Universal Package Systems

    Billed as the future of package management, universal package systems like Snappy and Flatpak have failed to live up to their promise.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News