Hi Guix, I would like to migrate more of my software use to Guix-based containers, but I haven't yet found a way to handle them that fully suits my needs. The root issue is the volatility of environments, and I wonder if I am missing some feature to handle them better. Here is my current reasoning:
1. Containers can only be generated using "guix shell" or the older "guix environment". There is no way to generate a container based on a profile. Correct me if I am wrong! 2. I have been using a plain "guix shell" for a while, but my environments break too often after a "guix pull" to continue this way. Most of my containerized environments contain no security-critical software, so I'd be happy not to update them very often (or not at all). That would be trivial with profiles, but... point 1. 3. There's the –root option to "guix shell" to protect my environment from the garbage collector. But there is no way to say "use the environment pointed to by that root, no matter when and how it was created". I have to specify the packages with respect to the current Guix version (last "pull"). So if I want to protect against updates, I have to use "guix time-machine" with "guix shell". Which is fine in theory. 4. In practice, I often work with a bad or non-existing network connection, so I must be sure to have all my packages in the store. And if I use "time-machine", I must also keep the required Guix version locally available. But there is no option for that in "time-machine". The Guix versions it downloads are garbage-collected after a while. So I can find myself in the situation of having all the packages for my environment in the store, but unable to access it without a network connection, because "time-machine" first needs to fetch an old Guix version again. Did I overlook anything? Cheers, Konrad
