Brussels / 4 & 5 February 2023


Using GNU Guix Containers with FHS (Filesystem Hierarchy Standard) Support

The GNU Guix package manager/distribution provides its own containers as part of a more general tool, 'guix shell' for quick one-off or repeatable environments. The container option is isolated from the host system, with options to expose directories, network interfaces, and so on. This is an excellent tool for isolating software in a completely controlled and reproducible environment in a minimal way. Recently, we added an option to emulate the Filesystem Hierarchy Standard (FHS) within the container, so that this environment looks like a more "typical" distribution with a global '/lib', '/bin', etc., unlike a Guix system. This is helpful for developing or running software which expects or assumes an FHS file layout. For example, many language environments want to manage their own tools and download binaries, or some software isn't yet packagable for Guix, like a fully source and bootstrapable JavaScript application. These would otherwise be very difficult to use in Guix and now we can do so in an (isolated) environment. This talk will introduce 'guix shell' and the container and emulate-FHS options with examples of real-world use.


Photo of John Kehayias John Kehayias