Snap or APT for a reproducible Ubuntu dev toolchain?
0 reputation · 20 Jan 2020, 11:59 UTC
Goal
Establish a repeatable development environment on Ubuntu 22.04 LTS and 24.04 LTS by choosing one packaging format for core toolchain packages such as compilers, interpreters, and build utilities.
Constraint
Snap packages bundle dependencies and promise identical runtime versions across machines, but strict confinement can block direct access to shared build directories unless interfaces are manually declared. APT deb packages provide finer version control and system-wide configuration, yet dependency resolution may diverge between releases, weakening reproducibility. Ubuntu already ships a mixed Snap and APT environment by default.
Open decision
No documented standard combines Snap confinement with apt-based provisioning for development workstations. Teams must decide whether runtime consistency or filesystem access should take priority, and whether a mixed format is sustainable across supported LTS releases.
Should core toolchain packages be installed as Snaps to guarantee identical runtimes, or as APT packages to preserve unrestricted filesystem access? Can Snap interface declarations expose shared source directories without breaking automated provisioning? Is a mixed Snap/APT toolchain acceptable on both Ubuntu 22.04 and 24.04, or should one format be standardized?