help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Updating a very old Guix


From: Julien Lepiller
Subject: Re: Updating a very old Guix
Date: Tue, 13 Nov 2018 13:53:36 +0100
User-agent: Roundcube Webmail/1.3.6

Le 2018-11-13 13:43, Konrad Hinsen a écrit :
swedebugia <address@hidden> 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 address@hidden

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 address@hidden `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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]