On Sun, 17 Nov 2019 22:14:07 +0100 Ludovic Courtès wrote: > > The command “sudo -i guix --version” gives me: > > guix (GNU Guix) 20170703.13 > > This version predates the big ‘guix pull’ overhaul in 0.15.0 (what > basically makes this kind of problem much less likely to happen.) > > Thus, you need a more recent ‘guix’ to upgrade. > > One way to do that is to fetch the derivation that builds a recent Guix > and to build it. > > Here’s a trick to do that (for commit 57c7bfec6, on x86_64-linux): > > --8<---------------cut here---------------start------------->8--- > $ guile -c '(use-modules (guix)) (with-store s (build-things s (list "/gnu/store/ihylk84symj8mjhp3zmy83ch2h2pl0ks-guix-57c7bfec6.drv")))' > $ guix build "/gnu/store/ihylk84symj8mjhp3zmy83ch2h2pl0ks-guix-57c7bfec6.drv" > $ /gnu/store/4zmf32hjrjjjl2xp91aldxhmsmk6ff29-guix-57c7bfec6/bin/guix pull > --8<---------------cut here---------------end--------------->8--- > > Let me know how it goes! Puh, in respect to the sequencing mails I have to admit that it is hard to me to follow the discussion. So please let me ask something else in between: Can I make use of an existing guix derivation file or guix binary, available in /gnu/store? In example (on i686): The root account has this very old guix version: v0.13.0-443-gde9d8f0e29 Whereas, my user account has a more up-to-date version: bootstrap-20190815-3564-g7696af421b and its Generation 1 refers to: v0.16.0 In /gnu/store/, I have several guix derivations available: $ ll *-guix-0.13.0-2.???????.drv -r--r--r-- 2 root root 4,5K Jan 1 1970 6r87sglvwbmqcz2zhzgvag7aakk1shc3-guix-0.13.0-2.de9d8f0.drv -r--r--r-- 2 root root 1,1K Jan 1 1970 c24j1glzsgzklkjmv2ik7vcsyasc6yg2-guix-0.13.0-2.de9d8f0.drv -r--r--r-- 2 root root 2,7K Jan 1 1970 cav8ip7bazglbhagd7afbyw9aah94q3m-guix-0.13.0-2.de9d8f0.drv -r--r--r-- 2 root root 4,5K Jan 1 1970 p5m5qhkab5rxki8fmn89wgmnvchf1p1l-guix-0.13.0-2.de9d8f0.drv and $ ll *-guix-?????????.drv -r--r--r-- 2 root root 1,2K Jan 1 1970 0ypa7ga44mprjp2cfyk5iwlg07jqq2m4-guix-b8f0a3fdc.drv -r--r--r-- 2 root root 1,3K Jan 1 1970 3b4kw7sfm03092cc0sxh91w2v26jvq4n-guix-4a0b87f0e.drv -r--r--r-- 2 root root 1,2K Jan 1 1970 bl41dqirc8j6mza8f01xac1f8pd5fbh3-guix-d8048dbe5.drv -r--r--r-- 2 root root 1,2K Jan 1 1970 iq424kad8wj3ws0g59nwdkccrk34k76g-guix-c72c10053.drv -r--r--r-- 2 root root 1,2K Jan 1 1970 r2hww1x08y9gz9a9fb94w1b0d3rjv9d5-guix-7696af421.drv ...which can be sorted by age if I use “git describe” to get a human readable string: ~~~ $ git describe 7696af421 bootstrap-20190815-3564-g7696af421b $ git describe d8048dbe5 bootstrap-20190815-3491-gd8048dbe50 $ git describe b8f0a3fdc bootstrap-20190815-3368-gb8f0a3fdc8 $ git describe c72c10053 v1.0.0-696-gc72c10053d $ git describe 4a0b87f0e v0.16.0 $ git describe de9d8f0 v0.13.0-443-gde9d8f0e29 ~~~ If I pick the oldest commit beyond 0.15, I try an already built binary. That seems to work, although I receive a bunch of warnings (not shown here): ~~~ # /gnu/store/b0br0mhjxcy7bzg0c2pij1vf48jf9ddj-guix-4a0b87f0e/bin/guix pull -c0 guile: warning: failed to install locale hint: Consider installing the `glibc-utf8-locales' or `glibc-locales' package and defining `GUIX_LOCPATH', along these lines: guix package -i glibc-utf8-locales export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale" See the "Application Setup" section in the manual, for more info. Migrating profile generations to '/var/guix/profiles/per-user/root'... Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'... Building from this channel: guix https://git.savannah.gnu.org/git/guix.git 900ef20 substitute: updating list of substitutes from 'https://ci.guix.gnu.org'... 100.0% substitute: updating list of substitutes from 'https://ci.guix.gnu.org'... 100.0% substitute: updating list of substitutes from 'https://ci.guix.gnu.org'... 100.0% [...] building /gnu/store/3yk3qh02vx8zm7pd9d3x7gicikfbpybr-profile.drv... successfully built /gnu/store/3yk3qh02vx8zm7pd9d3x7gicikfbpybr-profile.drv 1 package in profile # guix pull -l guile: warning: failed to install locale Generation 1 Nov 18 2019 22:45:38 (current) guix 900ef20 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 900ef20b1da66ad71145082c883dc12f31fafa54 # guix package -I guile: warning: failed to install locale glibc-utf8-locales 2.25 out /gnu/store/9vv6szr949m8mrqfyj7bfkxi8g5mfr2y-glibc-utf8-locales-2.25 guix 0.13.0-2.de9d8f0 out /gnu/store/34541bys6lh3wjwjn81b9bxjb93q83qx-guix-0.13.0-2.de9d8f0 glibc 2.25 out /gnu/store/2bw8y2k8fi9n6yl43ks0m62z919kgrfv-glibc-2.25 ~~~ If I understand correctly, I have just updated my root’s guix and I carefully update packages glibc and glibc-utf8-locales in order to satisfy guile and make the warning disappear: ~~~ # guix package -c0 -u glibc-utf8-locales -u glibc guile: warning: failed to install locale The following packages will be upgraded: glibc-utf8-locales 2.25 → 2.29 /gnu/store/lhcmsprr3jz8cp0wg27ql59fv1k6hrkl-glibc-utf8-locales-2.29 glibc 2.25 → 2.29 /gnu/store/df1lrb4b1dmw99b764qdk7akv0hpyjiw-glibc-2.29 [...] 3 packages in profile # guix package -I guix 0.13.0-2.de9d8f0 out /gnu/store/34541bys6lh3wjwjn81b9bxjb93q83qx-guix-0.13.0-2.de9d8f0 glibc-utf8-locales 2.29 out /gnu/store/lhcmsprr3jz8cp0wg27ql59fv1k6hrkl-glibc-utf8-locales-2.29 glibc 2.29 out /gnu/store/df1lrb4b1dmw99b764qdk7akv0hpyjiw-glibc-2.29 ~~~ Now I remember that I have to restart the daemon and reboot the machine. Playing around with “pull” and “package -u” again brings me to the situation where I am now: ~~~ # guix pull -l Generation 1 Nov 18 2019 22:45:38 guix 900ef20 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 900ef20b1da66ad71145082c883dc12f31fafa54 Generation 2 Nov 19 2019 00:11:25 guix e26867f repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: e26867f74b629c4a981e45332ce94637cf4230eb 1 package upgraded: tome4@1.6.1 Generation 3 Nov 20 2019 13:33:09 (current) guix 30ebff6 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 30ebff69a75fe90a1694ef35cf6e749ec376b67e 7 new packages: carla, emacs-ample-theme, font-dseg, minisat, python-intelhex, python-mcuboot-imgtool, python-next 4 packages upgraded: brlaser@6, cmark@0.29.0, mcron@1.1.3, uefitool@0.26.0 # guix package -I glibc-utf8-locales 2.29 out /gnu/store/lhcmsprr3jz8cp0wg27ql59fv1k6hrkl-glibc-utf8-locales-2.29 guix 1.0.1-10.41b4b71 out /gnu/store/4djl9bnl0p62jmfidk5vc2sjchx5m2h7-guix-1.0.1-10.41b4b71 glibc 2.29 out /gnu/store/df1lrb4b1dmw99b764qdk7akv0hpyjiw-glibc-2.29 ~~~ I guess I am back on track now, would you agree? Or does my procedure contain any mistakes? I wonder why guix did not use local guix derivations or binaries that were already available in the store. Maybe a now-a-days version of guix would do? I further wonder why the guix package itself is still listed, as with a fresh, recent installation of guix on top of a foreign distro, guix itself is not listed with “guix package -l”. best regards Kai -- Kai Mertens OpenPGP Key-ID: 0x40B15AB4B05B5BF1 on keys.gnupg.net Key fingerprint = 7C83 0A80 01FF 679C 6E8E AFD3 40B1 5AB4 B05B 5BF1 What is that? Please check: https://emailselfdefense.fsf.org/en/