Le 2018-11-13 13:43, Konrad Hinsen a écrit :
swedebugia <swedebu...@riseup.net> writes:
This is most probably not correct. You most probably do have a working
Guix in the store but your current guix points to the new one which
lacks guile-gcrypt.
Indeed, kind of. It looks more complicated than that.
As you say, there is indeed a working guix in the store, but calling
apparently still makes it use the messed-up code under ~/.config/guix.
After renaming this to move it out of the way, I can again run guix
commands.
However...
I suggest you roll back your guix pull profile following the manual.
(this might not work if your guix is too old)
My guix does seem to be too old for that. And while I can now invoke it
without an immediate error message, every attempt at installing or even
removing packages leads to an attempt to compile the GCC toolchain,
which fails for lack of disk space (there's only one 10 GB partition).
So I tried Julien's suggestion to copy over a newer guix from another
machine.
Step by step:
guix archive --generate-key
Works fine, but must be run as root because it writes to /etc.
scp /etc/guix/signing-key.pub remote@machine
then on the remote machine
guix archive --authorize < signing-key.pub
Again "guix archive" must be run as root. Back to the "new-guix"
machine:
guix copy --to=remote@machine `readlink -f ~/.config/guix/latest`
guix copy: error: failed to connect to `#<input-output: channel (open)
c7ed00>': Protocol error
Hard to say which protocol is not respected there, but given how old my
guix is, I suspect the protocol used by "guix copy" has changed since.
So let's try a variant: use "guix archive" to export a nar file, copy
it
over to the other machine, and import it.
guix archive --export `readlink -f ~/.config/guix/latest` >
guix-update.nar
The command you should run is:
guix archive --recursive --export `readlink -f ~/.config/guix/current` >
guix-update.nar
note the --recursive (so guix can find its dependencies, but it will
bundle every dependency in the .nar, so there may be some duplication
that guix copy would have avoided), and the actual directory name is
current, not latest (latest is the old name of the guix installation
directory, but since we switched to full profiles for guix, we also
renamed the directory where the current guix version is installed). I
think I told you "latest" before, that was my mistake, sorry. Maybe you
can try again "guix copy", with "current" this time?
guix archive: error: build failed: program `guix-authenticate' failed
with exit code 1
There isn't much documentation on "guix authenticate" and how it might
fail, so I'll end my experiments here. Does anyone have an idea for
something else that I might try?
Cheers,
Konrad.