Skip to content

App Bundles

Platform agnostic application distribution.

Always use OS package manager

All app bundles include static libraries which are not updated with the OS. Typically this results in very large installs when the application itself is very small, and may introduce security vulnerabilities with included dependencies that are not updated with the OS.

Only install app bundles when the OS cannot install the version that is required to be used.

AppImage

AppImage is highly preferred over all other bundles. These tend to be the smallest, and allow extraction to run directly in limited environments.

# AppImages just need to be downloaded and set executable.
chmod +x Image.AppImage
Image.AppImage

# FUSE is required. LXC containers may need to extract the package first.
Image.AppImage --appimage-extract
./squashfs-root/AppRun

Flatpak

Originally created by RedHat developers to simplify application deployment across multiple distributions.

Only for Desktops

Heavy space bloat and most apps are heavily restricted, resulting in many issues in virtualized environments. Most will require flatseal to relax permissions for actual use.

sudo apt install flatpak

# KDE Support
sudo apt install plasma-discover-backend-flatpak

# GNOME Support
sudo apt install gnome-software-plugin-flatpak

# Add repository
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
reboot
sudo pacman -S flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
reboot
# Flatseal is used to modify sandbox permissions for flatpaks. Most flatpaks
# require additional access to function correctly.
flatpak install flathub flatseal

# Packages are install via flatpak
flatpak install flathub org.kde.digikam
flatpak install flathub org.musicbrainz.Picard
flatpak run org.kde.digikam

Snap (Snapcraft)

Create by canonical and manages packages via snapd.

Not Recommended

Snap packages require a daemon to run and can randomly restart underlying services when installing/using apps. Use AppImage or Flatpak instead.