cross-posted from: https://lemmy.today/post/34279957
guix shell sees to it that all of the dependencies (listed in the inputs and native-inputs sections) are available within the shell session it creates by downloading (or building, if necessary) the entire dependency tree.
Should you want/need more isolation from the host system, guix shell has you covered. The --pure flag will clear out most existing environments variables, such as $PATH, so that the resulting environment does not contain pointers to places like /usr. For more Docker-like isolation, the --container flag can be used, which will run the new shell session within a set of Linux namespaces so that the host system is inaccessible.
Other great resource is guix shell: Overview by Andrew.
Although, one thing I’m still trying to understand is the difference between
guix.scm
andmanifest.scm
… The posted article only mentionsguix.scm
, but Andrew talks about both. But… he doesn’t really go into why there are two files and when you would use one or the other…