Background Information
This is background technical information that explains our design choices and philosophy, and generally doesn’t matter day-to-day when using Apollo, but some users may still be interested in, especially those more familiar with Linux and technology. This is a companion page to Frequently Asked Questions.
Based on Arch Linux#
Apollo should be considered as an Arch derivative and as such you should not ask for support with Apollo in Arch community spaces.
Apollo uses Arch Linux as a package base and bootc for updates and image deployment. Apollo’s image-based design makes this similar in function and behaviour to SteamOS.
Why doesn’t pacman work properly?#
Indeed, pacman behaves differently on Apollo than on regular Arch Linux or most derivatives. This is because the /usr folder is mounted as read-only by default, meaning that pacman by default isn’t able to install packages in the traditional manner. With Apollo, the primary method of installing software is through Flatpak, brew, or Distrobox. If you depend on software that isn’t available through these methods, you can build a custom image.
Distroless approach#
We believe that prioritising working with our upstreams and others in the Linux community over downstream modifications and rebuilds allows us to make a more effective and usable Linux desktop for everyone. We promote the use of distro-agnostic packaging formats and containerisation over using distro packages.
bootc under the hood#
Apollo uses the bootc update system. This combines image-based updates with bootable container technology to make a more resilient and reliable Linux system.
Updating Apollo pulls a fresh copy of Apollo from the internet and deploys it for the next boot, rather than updating individual packages. This makes the system much more resilient to configuration drift and eliminates common issues with Linux systems from failed updates.
Additionally, Apollo is distributed as a container image. This has several benefits, it allows us to use chunks to provide smaller updates over time, it allows us to use OCI infrastructure to distribute images, and makes it possible for users to make their own downstream/derivative versions of Apollo.