Hi sirgazil,
Well, the profile is created and persists, but, after deactivating the
environment, how do I start an environment that uses that profile?
If you want to use the isolation features of `guix environment`, like
running inside a container,
you can just use the same command that you used for creating the
profile. Guix will not rebuild
anything because all derivations are already in the store from the first
time you executed this,
so
guix environment --pure --manifest=guix.scm
--root=/path/to/my-guix-envs/my-project
Otherwise, you can use the standard way that you can use to load any
GUIX profile: You source
the <profile>/etc/profile file into your shell:
GUIX_PROFILE="/path/to/my-guix-envs/my-project"; .
"$GUIX_PROFILE"/etc/profile
The dot is the shell command `source`. It defines the nessecary
environment variables like PATH.
Defining the variable GUIX_PROFILE has the effect thatyou always access
the newest generation of the
profile. If you update your profile while your shell is running, you
automatically access the files
of the new generation. Read the source code of $GUIX_PROFILE/etc/profile
for more info.
As a general note, the use case of `guix environment` is to debug how a
specific program is built
by GUIX. For example, if you want to enter the environment that GUIX
creates for the building of
GNU hello, you call `guix environment hello`. You enter a profile with
the *dependencies* of hello
which you can then try to build yourself. If you just want to create a
profile following a manifest
file, just use
guix package --manifest="your-manifest.scm" -p
/path/to/profile-folder
That said, the containerization features of `guix environment` can be
handy in other cases, too.
Cheers, Moritz