Up: Advanced package management   [Contents][Index]

6.1 Guix Profiles in Practice

Guix provides a very useful feature that may be quite foreign to newcomers: profiles. They are a way to group package installations together and all users on the same system are free to use as many profiles as they want.

Whether you’re a developer or not, you may find that multiple profiles bring you great power and flexibility. While they shift the paradigm somewhat compared to traditional package managers, they are very convenient to use once you’ve understood how to set them up.

Note: This section is an opinionated guide on the use of multiple profiles. It predates guix shell and its fast profile cache (see Invoking guix shell in GNU Guix Reference Manual).

In many cases, you may find that using guix shell to set up the environment you need, when you need it, is less work that maintaining a dedicated profile. Your call!

If you are familiar with Python’s ‘virtualenv’, you can think of a profile as a kind of universal ‘virtualenv’ that can hold any kind of software whatsoever, not just Python software. Furthermore, profiles are self-sufficient: they capture all the runtime dependencies which guarantees that all programs within a profile will always work at any point in time.

Multiple profiles have many benefits:

Concretely, here follows some typical profiles:

Let’s dive in the set up!

Up: Advanced package management   [Contents][Index]