Hi,

Nikita Karetnikov <nik...@karetnikov.org> skribis:

> It depends on how profiles are stored. It turned out that there are
> several issues. By the way, what should I do to create a custom profile?

The only way to manipulate profiles is via ‘guix-package -p xxx’.

> Both 'profile-rx' and 'profile-number' work fine when '%current-profile'
> is used.
>
> scheme@(guile-user)> (define %current-profile 
> "/nix/var/nix/profiles/per-user/root/guix-profile")
> scheme@(guile-user)> (profile-number %current-profile)
> $2 = "1"
> scheme@(guile-user)> (readlink %current-profile)
> $3 = "/nix/var/nix/profiles/per-user/root/guix-profile-1-link"
>
> But fail for other inputs.

That’s expected.

> Here is what I used to create a bogus custom profile.
>
> # cd /home
> # mkdir testdir
> # cd testdir
> # touch env-42
> # ln -s env-42 42-custom-profile
> # ln -s 42-custom-profile guix-profile
>
> [...]
>
> scheme@(guile-user)> (define custom-profile "/home/testdir/guix-profile")
> scheme@(guile-user)> (profile-number custom-profile)
> $7 = #f

Yeah, that’s expected.  Basically, if you do

  guix-package -p /dev/null --roll-back

it should fail with an error message saying that there is no previous
profile or something like that.

> So, what kinds of profiles should be supported? Maybe it's not possible
> to create something like 'custom-profile' and there is no need to
> bother.

There are two ways to use ‘guix-package’:

  1. without -p, it uses the user’s default profile, by default
     /nix/var/nix/profiles/per-user/$USER/guix-profile;

  2. with -p, it uses the specified profile (see tests/guix-package.sh,
     for an example).

Thanks,
Ludo’.

Reply via email to