* Trying to replicate guix packages list on another machine @ 2022-06-27 13:49 Emmanuel Medernach 2022-06-27 14:32 ` zimoun 2022-06-27 14:42 ` Julien Lepiller 0 siblings, 2 replies; 8+ messages in thread From: Emmanuel Medernach @ 2022-06-27 13:49 UTC (permalink / raw) To: help-guix Hello, We are trying to replicate guix packages list on another machine. We are using GUIX on a foreign distro. Here what we have on machine A: [Machine A]$ guix describe --format=channels (list (channel (name 'guix) (url "https://git.savannah.gnu.org/git/guix.git") (commit "a0178d34f582b50e9bdbb0403943129ae5b560ff") (introduction (make-channel-introduction "9edb3f66fd807b096b48283debdcddccfea34bad" (openpgp-fingerprint "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) [Machine A]$ guix package --list-installed | sort | awk '//{ print $1 "@" $2; }' cmake@3.19.2 gcc-toolchain@4.9.4 glibc@2.33 gsl@2.6 icu4c@68.2 make@4.3 pcre@8.44 zlib@1.2.11 But on machine B: [Machine B]$ cat ~/.config/guix/channels.scm (list (channel (name 'guix) (url "https://git.savannah.gnu.org/git/guix.git") (commit "a0178d34f582b50e9bdbb0403943129ae5b560ff") (introduction (make-channel-introduction "9edb3f66fd807b096b48283debdcddccfea34bad" (openpgp-fingerprint "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) [Machine B]$ guix install cmake@3.19.2 gcc-toolchain@4.9.4 glibc@2.33 gsl@2.6 icu4c@68.2 make@4.3 pcre@8.44 zlib@1.2.11 guix install: error: glibc: package not found for version 2.33 What are we doing wrong ? Please tell us what steps are missing to correctly replicate guix packages to another machine ? Best regards, Emmanuel Medernach ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Trying to replicate guix packages list on another machine 2022-06-27 13:49 Trying to replicate guix packages list on another machine Emmanuel Medernach @ 2022-06-27 14:32 ` zimoun 2022-06-27 14:51 ` Emmanuel Medernach 2022-06-27 14:42 ` Julien Lepiller 1 sibling, 1 reply; 8+ messages in thread From: zimoun @ 2022-06-27 14:32 UTC (permalink / raw) To: Emmanuel Medernach, help-guix Hi, On Mon, 27 Jun 2022 at 15:49, Emmanuel Medernach <Emmanuel.Medernach@iphc.cnrs.fr> wrote: > [Machine A]$ guix package --list-installed | sort | awk '//{ print $1 > "@" $2; }' > cmake@3.19.2 > gcc-toolchain@4.9.4 > glibc@2.33 > gsl@2.6 > icu4c@68.2 > make@4.3 > pcre@8.44 > zlib@1.2.11 Instead, it seems easier to run: guix package --export-manifest > But on machine B: > > [Machine B]$ cat ~/.config/guix/channels.scm > (list (channel > (name 'guix) > (url "https://git.savannah.gnu.org/git/guix.git") > (commit > "a0178d34f582b50e9bdbb0403943129ae5b560ff") > (introduction > (make-channel-introduction > "9edb3f66fd807b096b48283debdcddccfea34bad" > (openpgp-fingerprint > "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) Did you run “guix pull” or “guix pull -C ~/.config/guix/channels.scm”? > [Machine B]$ guix install cmake@3.19.2 gcc-toolchain@4.9.4 glibc@2.33 > gsl@2.6 icu4c@68.2 make@4.3 pcre@8.44 zlib@1.2.11 > guix install: error: glibc: package not found for version 2.33 I guess “guix describe” on ’Machine B’ is not the state specified by ’Machine A’. From my understanding, the easiest workflow is: machine-A$ guix describe -f channels > state-A.scm machine-A$ guix package --export-manifest > pkgs-A.scm exchange these 2 files (even, it is better that these 2 files are versioned with the project itsefl ;-)) machine-B$ guix time-machine -C state-A.scm \ package -m pkg-A.scm \ -p profile-A This way, the global state of ’Machine B’ is unchanged; in case you are working on several projects at various states in the same time. Hope that helps, simon ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Trying to replicate guix packages list on another machine 2022-06-27 14:32 ` zimoun @ 2022-06-27 14:51 ` Emmanuel Medernach 2022-06-27 15:39 ` zimoun 0 siblings, 1 reply; 8+ messages in thread From: Emmanuel Medernach @ 2022-06-27 14:51 UTC (permalink / raw) To: zimoun, help-guix Le 27/06/2022 à 16:32, zimoun a écrit : > I guess “guix describe” on ’Machine B’ is not the state specified by > ’Machine A’. From my understanding, the easiest workflow is: > > machine-A$ guix describe -f channels > state-A.scm > machine-A$ guix package --export-manifest > pkgs-A.scm > > exchange these 2 files (even, it is better that these 2 files are > versioned with the project itsefl ;-)) > > machine-B$ guix time-machine -C state-A.scm \ > package -m pkg-A.scm \ > -p profile-A > > > This way, the global state of ’Machine B’ is unchanged; in case you are > working on several projects at various states in the same time. Thanks, here is the resulting manifest: (specifications->manifest (list "gsl" "pcre" "icu4c" "zlib" "cmake" "make" "gcc-toolchain@4.9" "glibc")) [Machine B]$ guix time-machine -C ~/.config/guix/channels.scm -- package -m manifest.scm -p profile-A ... building profile with 8 packages... hint: Consider setting the necessary environment variables by running: GUIX_PROFILE="/iphc/home/emederna/profile-A" . "$GUIX_PROFILE/etc/profile" ... [Machine B]$ guix package --list-installed | sort | awk '//{ print $1 "@" $2; }' cmake@3.19.2 gcc-toolchain@4.9.4 gsl@2.6 icu4c@68.2 make@4.3 pcre@8.44 zlib@1.2.11 Why is glibc missing ? Emmanuel > Hope that helps, > simon ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Trying to replicate guix packages list on another machine 2022-06-27 14:51 ` Emmanuel Medernach @ 2022-06-27 15:39 ` zimoun 2022-06-28 6:30 ` Emmanuel Medernach 0 siblings, 1 reply; 8+ messages in thread From: zimoun @ 2022-06-27 15:39 UTC (permalink / raw) To: Emmanuel Medernach, help-guix Hi, On Mon, 27 Jun 2022 at 16:51, Emmanuel Medernach <Emmanuel.Medernach@iphc.cnrs.fr> wrote: > Thanks, here is the resulting manifest: > > (specifications->manifest > (list "gsl" > "pcre" > "icu4c" > "zlib" > "cmake" > "make" > "gcc-toolchain@4.9" > "glibc")) > > [Machine B]$ guix time-machine -C ~/.config/guix/channels.scm -- package > -m manifest.scm -p profile-A Here you are installing in the profile ’profile-A’… > [Machine B]$ guix package --list-installed | sort | awk '//{ print $1 > "@" $2; }' …and here, you are listing the packages in the default profile ~/.guix-profile. Instead you should run, machine-B$ guix package -p profile-A -I Last, as Julien pointed out, it might be possible that on ’Machine-A’ the packages are from various states. You can give a look at: machine-A$ guix package --list-generations and so, it is possible that the packages you installed do not match the current state of Guix. For instance, you could compare: machine-A$ guix package --export-channels machine-A$ guix pull -f channels Well, if you did: guix pull guix install gsl guix pull guix install pcre guix pull guix zlib etc. the profile is not composed by only one state therefore it cannot be replicated. Only a rough approximation can be made. Or if you did: guix install gsl pcre icu4c etc. guix pull then “guix describe” does not provide the Guix state of the installed packages. Cheers, simon ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Trying to replicate guix packages list on another machine 2022-06-27 15:39 ` zimoun @ 2022-06-28 6:30 ` Emmanuel Medernach 2022-06-28 8:08 ` zimoun 0 siblings, 1 reply; 8+ messages in thread From: Emmanuel Medernach @ 2022-06-28 6:30 UTC (permalink / raw) To: zimoun, help-guix Le 27/06/2022 à 17:39, zimoun a écrit : > Hi, > > On Mon, 27 Jun 2022 at 16:51, Emmanuel Medernach <Emmanuel.Medernach@iphc.cnrs.fr> wrote: > >> Thanks, here is the resulting manifest: >> >> (specifications->manifest >> (list "gsl" >> "pcre" >> "icu4c" >> "zlib" >> "cmake" >> "make" >> "gcc-toolchain@4.9" >> "glibc")) >> >> [Machine B]$ guix time-machine -C ~/.config/guix/channels.scm -- package >> -m manifest.scm -p profile-A > Here you are installing in the profile ’profile-A’… > >> [Machine B]$ guix package --list-installed | sort | awk '//{ print $1 >> "@" $2; }' > …and here, you are listing the packages in the default profile > ~/.guix-profile. Instead you should run, > > machine-B$ guix package -p profile-A -I Thanks, here is the result: $ guix package -p profile-A -I glibc 2.31 out /gnu/store/ksy2b6fwfmz40gjajvspl87ia4vsfzj7-glibc-2.31 gcc-toolchain 4.9.4 out /gnu/store/frmwyxb8zl8vwd7840gb7j526c4dzxh0-gcc-toolchain-4.9.4 make 4.3 out /gnu/store/4k33n2nhsnnaxk2ip75gj7xiqdjns5hq-make-4.3 cmake 3.19.2 out /gnu/store/4axd987cf0bpkshybl1w7g5hp9yqm660-cmake-3.19.2 zlib 1.2.11 out /gnu/store/rykm237xkmq7rl1p0nwass01p090p88x-zlib-1.2.11 icu4c 68.2 out /gnu/store/hjggah4g7vb4db3c62lmmpqplv5g4drh-icu4c-68.2 pcre 8.44 out /gnu/store/k0aqiy7yx8n28dvm3f0a04ka5sd8y950-pcre-8.44 gsl 2.6 out /gnu/store/xq64iaxx2gmlcgnipj31wjxlf1yd2g2p-gsl-2.6 But glibc is 2.31 instead of 2.33 > > Last, as Julien pointed out, it might be possible that on ’Machine-A’ > the packages are from various states. You can give a look at: > > machine-A$ guix package --list-generations > > and so, it is possible that the packages you installed do not match the > current state of Guix. For instance, you could compare: > > machine-A$ guix package --export-channels > machine-A$ guix pull -f channels > > Well, if you did: > > guix pull > guix install gsl > guix pull > guix install pcre > guix pull > guix zlib > etc. > > the profile is not composed by only one state therefore it cannot be > replicated. Only a rough approximation can be made. > > Or if you did: > > guix install gsl pcre icu4c etc. > guix pull > > then “guix describe” does not provide the Guix state of the installed > packages. Thank you, yes packages installed are always evolving. I will now promote to use manifests. Best regards, Emmanuel > > Cheers, > simon ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Trying to replicate guix packages list on another machine 2022-06-28 6:30 ` Emmanuel Medernach @ 2022-06-28 8:08 ` zimoun 0 siblings, 0 replies; 8+ messages in thread From: zimoun @ 2022-06-28 8:08 UTC (permalink / raw) To: Emmanuel Medernach, help-guix Hi, On Tue, 28 Jun 2022 at 08:30, Emmanuel Medernach <Emmanuel.Medernach@iphc.cnrs.fr> wrote: > But glibc is 2.31 instead of 2.33 On ’Machine-A’, if you run, machine-A$ guix package --list-generations then I guess ’glibc’ is not installed in the same transaction (generation) as all the others. You can open the internals. :-) For instance, on ’Machine-A’, give a look at the internal file ’~/.guix-profile/manifest’. You should see ’glibc’ and its provenance (commit) and I bet it is different from the other provenance. Other said, the profile on ’Machine-A’ is populated by various states (revision). I guess glibc is at 2.31 at one state and then become 2.33 at another state. The command “guix package --export-channels” makes approximation to pick only one state when the profile is composed by several ones. Then it becomes hard, nor impossible, to replicate this multi-state profile on another machine. “Nor impossible” because it is possible to use inferiors [1] although I would not recommend going this way. 1: <https://guix.gnu.org/manual/devel/en/guix.html#Inferiors> > Thank you, yes packages installed are always evolving. I will now > promote to use manifests. Well, from my point of view, the best practise is: 1. track channels.scm from “guix pull -f channels” 2. track manifest.scm then guix time-machine -C channels.scm -- <cmd> -m manifest.scm works independently of the time and of the machine; or it should be. ;-) Cheers, simon ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Trying to replicate guix packages list on another machine 2022-06-27 13:49 Trying to replicate guix packages list on another machine Emmanuel Medernach 2022-06-27 14:32 ` zimoun @ 2022-06-27 14:42 ` Julien Lepiller 2022-06-27 14:56 ` Emmanuel Medernach 1 sibling, 1 reply; 8+ messages in thread From: Julien Lepiller @ 2022-06-27 14:42 UTC (permalink / raw) To: help-guix, Emmanuel Medernach, help-guix It's possible your packages on machine A are from various guix revisions, if you didn't run "guix update" or didn't use a manifest to install them. Eg you run "guix install glibc" at revision A, pull revision B where glibc was updated to 2.34. When you list your packages, it still mentions glibc@2.33 because you didn't update it. Then you try to replicate it on another machine by pulling revision B, but that old glibc is no longer available. Manifests ensure that all packages are from the same revision, although if you pull a new guix without reinstalling the manifest, you'll have the same issue because you're confusing the guix version from which the package was installed, and the current guix version. On June 27, 2022 3:49:58 PM GMT+02:00, Emmanuel Medernach <Emmanuel.Medernach@iphc.cnrs.fr> wrote: >Hello, > >We are trying to replicate guix packages list on another machine. We are using GUIX on a foreign distro. > >Here what we have on machine A: > >[Machine A]$ guix describe --format=channels >(list (channel > (name 'guix) > (url "https://git.savannah.gnu.org/git/guix.git") > (commit > "a0178d34f582b50e9bdbb0403943129ae5b560ff") > (introduction > (make-channel-introduction > "9edb3f66fd807b096b48283debdcddccfea34bad" > (openpgp-fingerprint > "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) > >[Machine A]$ guix package --list-installed | sort | awk '//{ print $1 "@" $2; }' >cmake@3.19.2 >gcc-toolchain@4.9.4 >glibc@2.33 >gsl@2.6 >icu4c@68.2 >make@4.3 >pcre@8.44 >zlib@1.2.11 > >But on machine B: > >[Machine B]$ cat ~/.config/guix/channels.scm >(list (channel > (name 'guix) > (url "https://git.savannah.gnu.org/git/guix.git") > (commit > "a0178d34f582b50e9bdbb0403943129ae5b560ff") > (introduction > (make-channel-introduction > "9edb3f66fd807b096b48283debdcddccfea34bad" > (openpgp-fingerprint > "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) > >[Machine B]$ guix install cmake@3.19.2 gcc-toolchain@4.9.4 glibc@2.33 gsl@2.6 icu4c@68.2 make@4.3 pcre@8.44 zlib@1.2.11 >guix install: error: glibc: package not found for version 2.33 > >What are we doing wrong ? Please tell us what steps are missing to correctly replicate guix packages to another machine ? > >Best regards, > >Emmanuel Medernach > > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Trying to replicate guix packages list on another machine 2022-06-27 14:42 ` Julien Lepiller @ 2022-06-27 14:56 ` Emmanuel Medernach 0 siblings, 0 replies; 8+ messages in thread From: Emmanuel Medernach @ 2022-06-27 14:56 UTC (permalink / raw) To: Julien Lepiller, help-guix Le 27/06/2022 à 16:42, Julien Lepiller a écrit : > It's possible your packages on machine A are from various guix > revisions, if you didn't run "guix update" or didn't use a manifest to > install them. > Yes you are right, that is certainly the case > Eg you run "guix install glibc" at revision A, pull revision B where > glibc was updated to 2.34. When you list your packages, it still > mentions glibc@2.33 because you didn't update it. Then you try to > replicate it on another machine by pulling revision B, but that old > glibc is no longer available. > > Manifests ensure that all packages are from the same revision, > although if you pull a new guix without reinstalling the manifest, > you'll have the same issue because you're confusing the guix version > from which the package was installed, and the current guix version. > Then how to install this previous glibc with other packages on machine B ? Emmanuel > On June 27, 2022 3:49:58 PM GMT+02:00, Emmanuel Medernach > <Emmanuel.Medernach@iphc.cnrs.fr> wrote: > > Hello, > > We are trying to replicate guix packages list on another machine. We are using GUIX on a foreign distro. > > Here what we have on machine A: > > [Machine A]$ guix describe --format=channels > (list (channel > (name 'guix) > (url"https://git.savannah.gnu.org/git/guix.git") > (commit > "a0178d34f582b50e9bdbb0403943129ae5b560ff") > (introduction > (make-channel-introduction > "9edb3f66fd807b096b48283debdcddccfea34bad" > (openpgp-fingerprint > "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) > > [Machine A]$ guix package --list-installed | sort | awk '//{ print $1 "@" $2; }' > cmake@3.19.2 > gcc-toolchain@4.9.4 > glibc@2.33 > gsl@2.6 > icu4c@68.2 > make@4.3 > pcre@8.44 > zlib@1.2.11 > > But on machine B: > > [Machine B]$ cat ~/.config/guix/channels.scm > (list (channel > (name 'guix) > (url"https://git.savannah.gnu.org/git/guix.git") > (commit > "a0178d34f582b50e9bdbb0403943129ae5b560ff") > (introduction > (make-channel-introduction > "9edb3f66fd807b096b48283debdcddccfea34bad" > (openpgp-fingerprint > "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) > > [Machine B]$ guix installcmake@3.19.2 gcc-toolchain@4.9.4 glibc@2.33 gsl@2.6 icu4c@68.2 make@4.3 pcre@8.44 zlib@1.2.11 > guix install: error: glibc: package not found for version 2.33 > > What are we doing wrong ? Please tell us what steps are missing to correctly replicate guix packages to another machine ? > > Best regards, > > Emmanuel Medernach > > > ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-06-28 8:32 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-06-27 13:49 Trying to replicate guix packages list on another machine Emmanuel Medernach 2022-06-27 14:32 ` zimoun 2022-06-27 14:51 ` Emmanuel Medernach 2022-06-27 15:39 ` zimoun 2022-06-28 6:30 ` Emmanuel Medernach 2022-06-28 8:08 ` zimoun 2022-06-27 14:42 ` Julien Lepiller 2022-06-27 14:56 ` Emmanuel Medernach
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).