On 22/02/17 09:36, Ricardo Wurmus wrote: > > Ben Sturmfels writes: > >> On Tue, 21 Feb 2017 09:52:11 +1100 >> Ben Sturmfels wrote: >> >>>> Could I trouble you to walk through the steps for manually >>>> installing a different version of guix-daemon? I'm stuck in the >>>> same situation where I can't `guix package --install`. >>> >>> (Also can't `guix pull` without an error) >> >> I'm attempting to fix my GuixSD system by downloading Guix >> 0.12.0 Binary, extracting and running guix-daemon, then running `guix >> pull` against that. The daemon runs ok, but `guix pull` is expecting >> its dependencies to be at /gnu, when they're actually at >> ~/Downloads/gnu. Any suggestions? > > How did you end up having dependencies outside of /gnu? All Guix > packages depend only on things inside the store. If you want to use > substitutes you cannot avoid /gnu. Sorry for the late reply. I had dependencies outside of /gnu because I was attempting to upgrade guix-daemon without messing with the nice clean read-only mounted /gnu/store filesystem. Turns out I didn't use that approach in the end and used "rollback" instead. I realised that the recovery steps in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25775#35 were more for Guix on a foreign distro. For anyone else on GuixSD who can't `guix pull` or `guix package --install` due to older guix-daemon mismatched with newer guix installed for root, here's how I fixed my system: 1. I had a number of system generations available so I rolled back to one before I ran the problematic "sudo guix pull", with `guix system list-generations` and `guix system switch-generations`. 2. Ran `sudo guix pull --url=http://git.savannah.gnu.org/cgit/guix.git/snapshot/afd532337.tar.gz` to get the last version of guix compatible with older daemons. 3. Ran `sudo guix system reconfigure myconfig.scm`, which upgrades guix-daemon. Note that `guix package --upgrade` as root doesn't upgrade guix-daemon on GuixSD. Note also that I ended up reducing the services in this config to just "%base-services" to avoid hours of unnecessary compiling, when I really just needed guix-daemon. Ended up having to do it in a virtual terminal. 4. Reboot and verify that I had an 0.12 version of guix-daemon running. 5. Ran `sudo guix pull` and `sudo guix system reconfigure myconfig2.scm` to restore my full desktop services and upgrade system infrastructure to latest version. 6. For good measure, ran `sudo guix pull` and `sudo guix package --upgrade` to bring root's guix tools up to date (actually had zero packages installed for root). 7. Ran `guix pull` and `guix package --upgrade` as my normal user to update that too. My actual path took a lot more than 7 steps, so I hope I got those instructions right. ;) Reinstalling probably would have been faster, but I've learnt a lot more about how GuixSD works, and it's satisfying and reassuring to be able to fix things by rolling back! Regards, Ben