Distri: researching fast Linux package management
Michael Stapelberg was a Debian developer for 7 years before he abandoned in favor of Arch Linux it due to "antique tooling and slow changes". Arch's Pacman package manager isn't fast enough for him so he decided to develop Distri, a blazing fast package manager. He presented it at the Arch Conf 2020. The video presentation is 20 minutes with an additional 30 minutes of Q&A.
"Linux package managers are too slow; how could we make things better?
In my work on distri, I show that package managers can fill almost any line rate (1 Gbps, 10 Gbps, 100 Gbps) effortlessly with the right architecture.
In this talk, I will explain the key ideas in distri’s architecture, and what impact they have on the resulting system. For example, packages are distributed as SquashFS images in distri, which makes their contents immutable and the overall system harder to break."
The main features of the Distri package manager compared to other package managers are:
- No hooks or triggers for "maximum parallelism"
- Uses SquashFS images instead of archives for packages, so there's no unpacking. These images are mounted under their own path ("separate hierarchies").
- Uses a CDN to distribute images so downloading is fast everywhere
- Distri packages are built against specific dependencies so they can always be installed without upgrading the whole system
- Distri packages use separate hierarchies so file conflicts aren't possible
- Packages are isolated from the host system
- Packages are heretic, they use the same library versions they were built with to run. Library paths (
PYTHONPATH, etc) are set with a wrapper script when packages are executed. Cross-package functionality is "emulated" using symbolic links.