* Channel details of profile generation @ 2020-12-28 17:52 Phil 2020-12-30 13:41 ` zimoun 0 siblings, 1 reply; 9+ messages in thread From: Phil @ 2020-12-28 17:52 UTC (permalink / raw) To: help-guix Hi all, I've been writing a script that given a date/time and a profile will return the details of that profile at that date/time, including the channels used to create the profile. Initially I though this would be as easy as: guix pull -p my-profile -l But this seems to crash: ________________________________ blah@phil:~$ guix pull -p my-profile -l \Generation 1 Dec 22 2020 17:24:53\ my-test-repo 1.49-3.f08de71 \Generation 2 Dec 22 2020 17:50:28\ guix 13d532a repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: \13d532a91178be7b6919b85685b150f941116dfc\ foo-packages 8fc6134 repository URL: ssh://git@localgit:7999/foo/foo-packages.git branch: master commit: 3dc613449f59ba8a8fdc35cadb7667ddaaf7fd9b Backtrace: 11 (primitive-load "/home/blah/.config/guix/current/bin/…") In guix/ui.scm: 2127:12 10 (run-guix-command _ . _) In ice-9/boot-9.scm: 1736:10 9 (with-exception-handler _ _ #:unwind? _ # _) 1731:15 8 (with-exception-handler #<procedure 7fa030b82b40 at ic…> …) 1731:15 7 (with-exception-handler #<procedure 7fa030b82b10 at ic…> …) 1731:15 6 (with-exception-handler #<procedure 7fa030c46390 at ic…> …) In guix/scripts/pull.scm: 636:4 5 (_) In guix/memoization.scm: 100:0 4 (_ #<hash-table 7fa030b4c780 0/31> "guix-profiles/py-t…" …) In guix/scripts/pull.scm: 538:21 3 (_) In guix/inferior.scm: 256:2 2 (inferior-available-packages #f) 251:13 1 (send-inferior-request (defined? (quote #)) #f) In ice-9/boot-9.scm: 1669:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1669:16: In procedure raise-exception: In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #f blah@phil:~$ ________________________________ This was a bit unexpected as you can call 'guix describe' with a profile (although you only get channel infomation if you leave off the -p switch). So instead I decided to write my own script. I've left how I work out the generation running on a given profile at a given datetime - but this is easy enough to do (look for nearest generation-time less than the provided datetime). Armed with this, the following looked like a good starting place: (display-profile-content my-profile generation-number) With me providing a profile and generation I want details on. There are 2 versions of the display-profile-content function; one in (guix ui) and one in (guix scripts describe). https://github.com/guix-mirror/guix/blob/d482569c2289647e666228cad238552b18f09410/guix/scripts/describe.scm#L232 https://github.com/guix-mirror/guix/blob/d482569c2289647e666228cad238552b18f09410/guix/ui.scm#L1947 The ui.scm version doesn't have the details I want, but the describe.scm one looked promising. However the match sequence in display-profile-content in describe.scm is looking for 'source not 'provenance - which if I look at the manifest under the profile won't match? Also it only seemed to match against the first 'repository - which is no good if a private channel is used by the profile. So whilst display-profile-content correctly displays information from display-generation, the for-each over the manifest entries doesn't yield any url/branch/commit info - at least for what I want to do. I also looked at the profile-channels function but drew a blank there too. The code at describe.scm was close enough that I could fairly easily repurpose it (see below). However my questions are: Os there not already a cannonical way to do this in Guix? If yes, what is it? If no is my approach below sane, or is what I'm trying to achieve ill-conceived in any way? Finally, what's the intended difference between 'source and 'provenance? To my mind - If a profile generation has a manifest which contains branch/commit details of the branches packages were created with - it seems reasonable and useful to report that information? Thanks, Phil. ________________________________ (format #t "~%~%Package/Channel Details:~%") (define my-manifest (manifest-entries (profile-manifest (generation-file-name my-profile generation-number)))) (for-each (lambda (entry) (format #t " ~a ~a~%" (manifest-entry-name entry) (manifest-entry-version entry)) (match (assq 'provenance (manifest-entry-properties entry)) (('provenance ('repository ('version 0) ('url url) ('branch branch) ('commit commit) _ ...) ...) (let ((repo-triples (zip url branch commit))) (map (lambda (triple) (apply format (append (list #t " URL: ~a~% Branch: ~a~% Commit: ~a~%~%") triple))) repo-triples))) (_ #f))) (reverse my-manifest)) ________________________________ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Channel details of profile generation 2020-12-28 17:52 Channel details of profile generation Phil @ 2020-12-30 13:41 ` zimoun 2021-01-04 17:29 ` Phil 0 siblings, 1 reply; 9+ messages in thread From: zimoun @ 2020-12-30 13:41 UTC (permalink / raw) To: Phil, help-guix Hi, On Mon, 28 Dec 2020 at 17:52, Phil <phil@beadling.co.uk> wrote: > guix pull -p my-profile -l > > But this seems to crash: I am surprised. > blah@phil:~$ guix pull -p my-profile -l > \Generation 1 Dec 22 2020 17:24:53\ > my-test-repo 1.49-3.f08de71 > \Generation 2 Dec 22 2020 17:50:28\ > guix 13d532a > repository URL: https://git.savannah.gnu.org/git/guix.git > branch: master > commit: \13d532a91178be7b6919b85685b150f941116dfc\ > foo-packages 8fc6134 > repository URL: ssh://git@localgit:7999/foo/foo-packages.git > branch: master > commit: 3dc613449f59ba8a8fdc35cadb7667ddaaf7fd9b > Backtrace: > 11 (primitive-load "/home/blah/.config/guix/current/bin/…") > In guix/ui.scm: > 2127:12 10 (run-guix-command _ . _) > In ice-9/boot-9.scm: > 1736:10 9 (with-exception-handler _ _ #:unwind? _ # _) > 1731:15 8 (with-exception-handler #<procedure 7fa030b82b40 at ic…> …) > 1731:15 7 (with-exception-handler #<procedure 7fa030b82b10 at ic…> …) > 1731:15 6 (with-exception-handler #<procedure 7fa030c46390 at ic…> …) > In guix/scripts/pull.scm: > 636:4 5 (_) > In guix/memoization.scm: > 100:0 4 (_ #<hash-table 7fa030b4c780 0/31> "guix-profiles/py-t…" …) > In guix/scripts/pull.scm: > 538:21 3 (_) > In guix/inferior.scm: > 256:2 2 (inferior-available-packages #f) > 251:13 1 (send-inferior-request (defined? (quote #)) #f) > In ice-9/boot-9.scm: > 1669:16 0 (raise-exception _ #:continuable? _) > > ice-9/boot-9.scm:1669:16: In procedure raise-exception: > In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #f Could you share how you generated the profile ’my-profile’? > Os there not already a cannonical way to do this in Guix? If yes, > what is it? Well, I am missing what you want to achieve. > If no is my approach below sane, or is what I'm trying to achieve > ill-conceived in any way? The profile used by ’pull’, by default ~/.config/guix/current, is somehow special compared to other profiles as ~/.guix-profile. > Finally, what's the intended difference between 'source and > 'provenance? Compare: cat ~/.config/guix/current/manifest | grep -E '(source|provenance)' cat ~/.guix-profile/manifest | grep -E '(source|provenance)' It is my understanding and maybe someone will correct me: 'source is the “properties“ tracking the channels from where the “pull” comes and 'provenance is the “properties” tracking the channel from where the packages come from. Well, 'source is used by “guix describe” but 'provenance is not used––it is by “guix pack --save-provenance” but that’s another story. > To my mind - If a profile generation has a manifest which contains > branch/commit details of the branches packages were created with - it > seems reasonable and useful to report that information? Report where? Hope that helps, simon ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Channel details of profile generation 2020-12-30 13:41 ` zimoun @ 2021-01-04 17:29 ` Phil 2021-01-05 17:01 ` zimoun 0 siblings, 1 reply; 9+ messages in thread From: Phil @ 2021-01-04 17:29 UTC (permalink / raw) To: zimoun; +Cc: help-guix Hi Simon, I'll specifically elaborate on the guix pull error in this e-mail, I follow-up on other items later (apologies my first e-mail as perhaps too busy!). zimoun writes: > Hi, > > On Mon, 28 Dec 2020 at 17:52, Phil <phil@beadling.co.uk> wrote: > >> guix pull -p my-profile -l >> >> But this seems to crash: > > I am surprised. > Could you share how you generated the profile ’my-profile’? > Yes - the issue here appears to be the inclusion of a package from a private channel in the manifest. If I create a manifest only using Guix packages - everything looks OK - eg: ubuntu@test-image:~/guix-manifests$ cat test-manifest.scm (packages->manifest (list (specification->package "python@3.8.2"))) ubuntu@test-image:~/guix-manifests$ guix package -m test-manifest.scm -p ~/guix-profiles/test-profile The following package will be installed: python 3.8.2 The following derivation will be built: /gnu/store/yd7093md8q5xa1s3zn3nwmh9qcpnwpjr-profile.drv building CA certificate bundle... building fonts directory... building directory of Info manuals... building database for manual pages... building profile with 1 package... hint: Consider setting the necessary environment variables by running: GUIX_PROFILE="/home/ubuntu/guix-profiles/test-profile" . "$GUIX_PROFILE/etc/profile" Alternately, see `guix package --search-paths -p "/home/ubuntu/guix-profiles/test-profile"'. ubuntu@test-image:~/guix-manifests$ GUIX_PROFILE="/home/ubuntu/guix-profiles/test-profile" ubuntu@test-image:~/guix-manifests$ . "$GUIX_PROFILE/etc/profile" ubuntu@test-image:~/guix-manifests$ guix pull -p ~/guix-profiles/test-profile -l \Generation 1 Jan 04 2021 17:00:58\ (current) python 3.8.2 ubuntu@test-image:~/guix-manifests$ But if I now also add a package from my private channel to the manifest: ubuntu@test-image:~/guix-manifests$ cat test-manifest-2.scm (packages->manifest (list (specification->package "python@3.8.2") (@ (py-test-pkg) py-test-pkg-develop))) ubuntu@test-image:~/guix-manifests$ guix package -m test-manifest-2.scm -p ~/guix-profiles/test-profile The following packages will be installed: py-test-pkg 4.72-0.2aa0874 python 3.8.2 updating checkout of 'ssh://git@my-bitbucket/foo/py-test-pkg.git'... retrieved commit 2aa08749a7b7ab7995f9cdb7bb1842e9889a09d substitute: updating substitutes from 'http://my-substitutes:8080'... 100.0% substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% The following derivation will be built: /gnu/store/qw745mdvy81ym9mwnx4khxafg2spclyw-py-test-pkg-4.72-0.2aa0874.drv building /gnu/store/qw745mdvy81ym9mwnx4khxafg2spclyw-py-test-pkg-4.72-0.2aa0874.drv... The following derivation will be built: /gnu/store/d0bzs0aly5bjy6lhwc7asc4m4s2lxlki-profile.drv building CA certificate bundle... building fonts directory... building directory of Info manuals... building database for manual pages... building profile with 2 packages... It installs OK but the same guix pull comamnd now fails: ubuntu@test-image:~/guix-manifests$ guix pull -p ~/guix-profiles/test-profile -l \Generation 1 Jan 04 2021 17:00:58\ python 3.8.2 \Generation 2 Jan 04 2021 17:03:48\ (current) py-test-pkg 4.72-0.2aa0874 python 3.8.2 Backtrace: 11 (primitive-load "/home/ubuntu/.config/guix/current/bin/…") In guix/ui.scm: 2127:12 10 (run-guix-command _ . _) In ice-9/boot-9.scm: 1736:10 9 (with-exception-handler _ _ #:unwind? _ # _) 1731:15 8 (with-exception-handler #<procedure 7f1e86b4f900 at ic…> …) 1731:15 7 (with-exception-handler #<procedure 7f1e86b4f8d0 at ic…> …) 1731:15 6 (with-exception-handler #<procedure 7f1e8877d480 at ic…> …) In guix/scripts/pull.scm: 636:4 5 (_) In guix/memoization.scm: 100:0 4 (_ #<hash-table 7f1e86b141c0 0/31> "/home/ubuntu/guix-…" …) In guix/scripts/pull.scm: 538:21 3 (_) In guix/inferior.scm: 256:2 2 (inferior-available-packages #f) 251:13 1 (send-inferior-request (defined? (quote #)) #f) In ice-9/boot-9.scm: 1669:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1669:16: In procedure raise-exception: In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #f ubuntu@test-image:~/guix-manifests$ Despite this the test package did install correctly (py-test-pkg installs module example_project): ubuntu@test-image:~/guix-manifests$ which python3 /home/ubuntu/guix-profiles/test-profile/bin/python3 ubuntu@test-image:~/guix-manifests$ python3 -m example_project --myparam testing The parameter was: testing > Hope that helps, > simon ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Channel details of profile generation 2021-01-04 17:29 ` Phil @ 2021-01-05 17:01 ` zimoun 2021-01-09 13:34 ` Phil 0 siblings, 1 reply; 9+ messages in thread From: zimoun @ 2021-01-05 17:01 UTC (permalink / raw) To: Phil; +Cc: help-guix Hi, On Mon, 4 Jan 2021 at 18:29, Phil <phil@beadling.co.uk> wrote: > > Could you share how you generated the profile ’my-profile’? > > Yes - the issue here appears to be the inclusion of a package from a > private channel in the manifest. > > If I create a manifest only using Guix packages - everything looks OK - eg: > > ubuntu@test-image:~/guix-manifests$ cat test-manifest.scm > (packages->manifest > (list (specification->package "python@3.8.2"))) [...] > ubuntu@test-image:~/guix-manifests$ guix package -m test-manifest.scm -p ~/guix-profiles/test-profile [...] > ubuntu@test-image:~/guix-manifests$ guix pull -p ~/guix-profiles/test-profile -l > \Generation 1 Jan 04 2021 17:00:58\ (current) > python 3.8.2 As I explained in the previous email, even if both are profiles, they are not the same. Basically, "guix pull" is for "~/.config/guix/current" which is somehow special. Therefore, I do not know what you want to achieve with "guix pull -p ~/guix-profiles/test-profile -l". Maybe, what you want is instead: ""guix package -p ~/guix-profiles/test-profile -l". Otherwise, could you explain which result you are expecting whatever the command to use? > But if I now also add a package from my private channel to the manifest: > > ubuntu@test-image:~/guix-manifests$ cat test-manifest-2.scm > (packages->manifest > (list (specification->package "python@3.8.2") > (@ (py-test-pkg) py-test-pkg-develop))) This looks weird to me. For example, I have 2 channels: --8<---------------cut here---------------start------------->8--- $ guix describe Generation 99 Jan 05 2021 16:56:39 (current) guix-science cf87b05 repository URL: https://github.com/guix-science/guix-science.git branch: master commit: cf87b0501c4a38b96edf41025a27bf1cb91f521a guix 957f0c4 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 957f0c40327ce00f53db22737e3775ce616ac258 --8<---------------cut here---------------end--------------->8--- and let consider this package from the extra channel: --8<---------------cut here---------------start------------->8--- $ guix show python-nose-exclude | recsel -p location location: guix-science/packages/jupyter.scm:71:2 --8<---------------cut here---------------end--------------->8--- then my manifest.scm file contains: --8<---------------cut here---------------start------------->8--- $ cat /tmp/my-manifest.scm (specifications->manifest (list "python" "python-nose-exclude")) --8<---------------cut here---------------end--------------->8--- and "guix package -m /tmp/my-manifest.scm -p /tmp/test-profile" does the job --8<---------------cut here---------------start------------->8--- $ guix package -p /tmp/test-profile -l Generation 1 Jan 05 2021 16:58:40 (current) python-nose-exclude 0.5.0 out /gnu/store/...-python-nose-exclude-0.5.0 python 3.8.2 out /gnu/store/...-python-3.8.2 --8<---------------cut here---------------end--------------->8--- And even "guix pull -p /tmp/test-profile -l" works. Now, I replace the manifest to only contain the package hello. --8<---------------cut here---------------start------------->8--- $ guix package -p /tmp/test-profile -l Generation 1 Jan 05 2021 16:58:40 python-nose-exclude 0.5.0 out /gnu/store/k3n4qxakw4rjjg81sfkaxcgln5xhaj3r-python-nose-exclude-0.5.0 python 3.8.2 out /gnu/store/9h5pjxj879y9rzy04m1v9835l4fblw95-python-3.8.2 Generation 2 Jan 05 2021 17:05:29 (current) + hello 2.10 out /gnu/store/a462kby1q51ndvxdv3b6p0rsixxrgx1h-hello-2.10 - python 3.8.2 out /gnu/store/9h5pjxj879y9rzy04m1v9835l4fblw95-python-3.8.2 - python-nose-exclude 0.5.0 out /gnu/store/k3n4qxakw4rjjg81sfkaxcgln5xhaj3r-python-nose-exclude-0.5.0 --8<---------------cut here---------------end--------------->8--- Then, I re-use the 2 pythons packages, re-upgrade the profile and then: --8<---------------cut here---------------start------------->8--- $ guix pull -p /tmp/test-profile -l Generation 1 Jan 05 2021 16:58:40 python-nose-exclude 0.5.0 python 3.8.2 Generation 2 Jan 05 2021 17:05:29 hello 2.10 Generation 3 Jan 05 2021 16:58:40 (current) python-nose-exclude 0.5.0 python 3.8.2 --8<---------------cut here---------------end--------------->8--- > ubuntu@test-image:~/guix-manifests$ guix pull -p ~/guix-profiles/test-profile -l Even if I am not sure to understand what you want to do, I am not able to reproduce. With /tmp/my-manifest-{1,2}.scm containing: --8<---------------cut here---------------start------------->8--- (specifications->manifest (list "python")) --8<---------------cut here---------------end--------------->8--- --8<---------------cut here---------------start------------->8--- (specifications->manifest (list "python" "python-nose-exclude")) --8<---------------cut here---------------end--------------->8--- I get: --8<---------------cut here---------------start------------->8--- $ guix package -p /tmp/foo -m /tmp/my-manifest-1.scm The following package will be installed: python 3.8.2 $ guix package -p /tmp/foo -m /tmp/my-manifest-2.scm The following packages will be installed: python 3.8.2 python-nose-exclude 0.5.0 $ guix pull -p /tmp/foo -l Generation 1 Jan 05 2021 17:47:34 python 3.8.2 Generation 2 Jan 05 2021 17:58:22 (current) python-nose-exclude 0.5.0 python 3.8.2 --8<---------------cut here---------------end--------------->8--- All the best, simon ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Channel details of profile generation 2021-01-05 17:01 ` zimoun @ 2021-01-09 13:34 ` Phil 2021-01-11 17:34 ` zimoun 0 siblings, 1 reply; 9+ messages in thread From: Phil @ 2021-01-09 13:34 UTC (permalink / raw) To: zimoun; +Cc: help-guix Hi, Thanks again for your help. Below I've split the question into PART 1 - which what I originally asked, and PART 2 - which is trying to resolve the backtrace seen using 'guix pull' that so far only I've reproduced. PART 2 is a bit of a rabbit-hole and I don't come back with any definitive answers - I recognize that my use of 'guix pull' was probably inappropriate, so my only interest here now is I don't think that any command should give a backtrace or hang indefinitely - even if I'm asking it a stupid question. So I'd like to understand why, and if needs be fix the code. I demonstrate below this is possible (at least on my use of on foreign distro Ubuntu 18.04). Apologies if my response it somewhat over-detailed! The short answer to PART 2, I think, is probably don't use 'guix pull -p profile -l' apart from on special guix profiles, but that doesn't explain the backtrace. zimoun writes: PART 1: > As I explained in the previous email, even if both are profiles, they > are not the same. Basically, "guix pull" is for > "~/.config/guix/current" which is somehow special. Therefore, I do > not know what you want to achieve with "guix pull -p > ~/guix-profiles/test-profile -l". Maybe, what you want is instead: > ""guix package -p ~/guix-profiles/test-profile -l". Otherwise, could > you explain which result you are expecting whatever the command to > use? > Yep - I've muddled this a bit, so I'm going to try an explain from the beginning what I'm trying to achieve. Given a date/time and a profile, it should be possible not only to tell me what generation of that profile was active at that date/time, but also the corresponding commit ids on the heads of each channels used to source the packages. So my tool works like this - and, I believe, the output is correct and methodology sane: --8<---------------cut here---------------start------------->8--- ubuntu@test-image:~$ guix repl -- profile-generation-on-datetime.scm 2020-12-24T12:00:00 guix-profiles/py-test-pkg-profile Profile Dir: guix-profiles/py-test-pkg-profile-39-link \Generation 39 Dec 24 2020 11:24:23\ Package/Channel Details: py-test-pkg 1.53 URL: https://git.savannah.gnu.org/git/guix.git Branch: master Commit: 13d532a91178be7b6919b85685b150f941116dfc URL: ssh://git@bbserver:7799/ea/guix-packages.git Branch: master Commit: ad21880272356219a9e33888cd0c237c8ece02d3 python 3.8.2 URL: https://git.savannah.gnu.org/git/guix.git Branch: master Commit: 13d532a91178be7b6919b85685b150f941116dfc --8<---------------cut here---------------end--------------->8--- Now, ignoring the date/time logic, all my tool is doing is returning the Package/Channel Details (via the profile manifest) as per above - when provided with a profile and a generation number. --8<---------------cut here---------------start------------->8--- (define my-manifest (manifest-entries (profile-manifest (generation-file-name my-profile generation-number)))) --8<---------------cut here---------------end--------------->8--- The command you suggested can also recover the details of 'Generation 39' like the below: --8<---------------cut here---------------start------------->8--- ubuntu@test-image:~$ guix package -p ~/guix-profiles/py-test-pkg-profile -l | grep -A4 'Generation 39' Generation 39 Dec 24 2020 11:24:23 + py-test-pkg 1.53 out /gnu/store/1s9v8psy6pi404pfv51b14i1w11agy2i-py-test-pkg-1.53 - py-test-pkg 1.52-3.45acac9 out /gnu/store/ncwm84b3ax5n6y374043di54q47ar6w9-py-test-pkg-1.52-3.45acac9 Generation 40 Dec 24 2020 13:55:09 --8<---------------cut here---------------end--------------->8--- However this only provides the package diff rather than the absolute package list, and more importantly (to me) it doesn't report the channel commit ids used to create the generation as available from manifest-entries. ***This is the crux of my original question - can I get the commit id data supplied by my script for a given profile/generation, from the command line using already available guix tools?*** (I think the answer to this is - no you cannot do it from the command line) The follow-up question was - if not, is my script's approach sane? (I think/hope this answer to this - is yes, my approach is reasonable/sane) Hopefully that bit is clearer now :-) PART 2: Separately I, probably incorrectly, thought that I might be able to use some incantation of 'guix pull -l' to achieve the same ends as my script, given pull's output does seem to include the channel commit ids. The surprise was that not so much that 'guix pull -l' didn't do what I was hoping (it was a shot in the dark), but that it crashed, rather than exiting gracefully. Now originally this was put down to junk-in/junk-out - i.e. me providing a standard package profile to a command expecting the 'special' guix profile. However as you've shown below - this is not the case - in your attempt to recreate my error 'guix pull' behaved well despite my dubious command use! > > Even if I am not sure to understand what you want to do, I am not able > to reproduce. With /tmp/my-manifest-{1,2}.scm containing: > > $ guix package -p /tmp/foo -m /tmp/my-manifest-2.scm > The following packages will be installed: > python 3.8.2 > python-nose-exclude 0.5.0 > > $ guix pull -p /tmp/foo -l > Generation 1 Jan 05 2021 17:47:34 > python 3.8.2 > Generation 2 Jan 05 2021 17:58:22 (current) > python-nose-exclude 0.5.0 > python 3.8.2 I can't argue with this - I need to do some more digging here to see why my use of guix pull is barfing, there are some differences between your test and mine - for example the use of the ssh protocol in the second channel, so the 2 tests are not identical, but as you see below I run into issues replicating even with the guix-science channel. I have tried a more detailed test below - my channels.scm now contains guix, guix-science, and my private channel. I do a guix pull to get the following: --8<---------------cut here---------------start------------->8--- Building from these channels: guix-science https://github.com/guix-science/guix-science.git cf87b05 guix-packages ssh://git@bbserver:7799/ea/guix-packages.git 55312da guix https://git.savannah.gnu.org/git/guix.git 13d532a --8<---------------cut here---------------end--------------->8--- I will now create a new profile and use 'guix package' to install 3 manifests to it, after each install I'll list the contents with 'guix package' and 'guix pull': --8<---------------cut here---------------start------------->8--- $ cat my-manifest-?.scm (specifications->manifest (list "python")) (specifications->manifest (list "python" "python-nose-exclude")) (specifications->manifest (list "python" "python-nose-exclude" "py-test-pkg")) --8<---------------cut here---------------end--------------->8--- First manifest installs python without issue: --8<---------------cut here---------------start------------->8--- $ guix package -m my-manifest-1.scm -p /tmp/test-profile The following package will be installed: python 3.8.2 $ guix package -p /tmp/test-profile -l \Generation 1 Jan 09 2021 11:39:07\ (current) python 3.8.2 out /gnu/store/9h5pjxj879y9rzy04m1v9835l4fblw95-python-3.8.2 $ guix pull -p /tmp/test-profile -l \Generation 1 Jan 09 2021 11:39:07\ (current) python 3.8.2 --8<---------------cut here---------------end--------------->8--- Second manifest - installs without issue BUT 'guix pull' now hangs after producing the right output requiring me to ctrl-c out of it: --8<---------------cut here---------------start------------->8--- $ guix package -m my-manifest-2.scm -p /tmp/test-profile The following packages will be installed: python 3.8.2 python-nose-exclude 0.5.0 $ guix package -p /tmp/test-profile -l \Generation 1 Jan 09 2021 11:39:07\ python 3.8.2 out /gnu/store/9h5pjxj879y9rzy04m1v9835l4fblw95-python-3.8.2 \Generation 2 Jan 09 2021 11:43:58\ (current) + python-nose-exclude 0.5.0 out /gnu/store/k3n4qxakw4rjjg81sfkaxcgln5xhaj3r-python-nose-exclude-0.5.0 $ guix pull -p /tmp/test-profile -l \Generation 1 Jan 09 2021 11:39:07\ python 3.8.2 \Generation 2 Jan 09 2021 11:43:58\ (current) python-nose-exclude 0.5.0 python 3.8.2 ^C <-- It's hanging here so I exit with ctrl-c --8<---------------cut here---------------end--------------->8--- Third manifest - installs fine but 'guix pull' produces same result as second manifest: --8<---------------cut here---------------start------------->8--- $ guix package -m my-manifest-3.scm -p /tmp/test-profile The following packages will be installed: py-test-pkg 1.65-1.e4c466a python 3.8.2 python-nose-exclude 0.5.0 $ guix package -p /tmp/test-profile -l \Generation 1 Jan 09 2021 11:39:07\ python 3.8.2 out /gnu/store/9h5pjxj879y9rzy04m1v9835l4fblw95-python-3.8.2 \Generation 2 Jan 09 2021 11:43:58\ + python-nose-exclude 0.5.0 out /gnu/store/k3n4qxakw4rjjg81sfkaxcgln5xhaj3r-python-nose-exclude-0.5.0 \Generation 3 Jan 09 2021 12:00:11\ (current) + py-test-pkg 1.65-1.e4c466a out /gnu/store/vz138cjpkv2m0d1xpq16g6f7ch2c8s86-py-test-pkg-1.65-1.e4c466a $ guix pull -p /tmp/test-profile -l \Generation 1 Jan 09 2021 11:39:07\ python 3.8.2 \Generation 2 Jan 09 2021 11:43:58\ python-nose-exclude 0.5.0 python 3.8.2 ^C --8<---------------cut here---------------end--------------->8--- Finally just to recreate the original error I create a fourth manifest in a new profile - but everything works fine now! --8<---------------cut here---------------start------------->8--- $ cat my-manifest-4.scm (specifications->manifest (list "python" "py-test-pkg")) $ guix package -m my-manifest-4.scm -p /tmp/test-profile2 The following packages will be installed: py-test-pkg 1.65-1.e4c466a python 3.8.2 $ guix package -p /tmp/test-profile2 -l \Generation 1 Jan 09 2021 12:06:49\ (current) py-test-pkg 1.65-1.e4c466a out /gnu/store/vz138cjpkv2m0d1xpq16g6f7ch2c8s86-py-test-pkg-1.65-1.e4c466a python 3.8.2 out /gnu/store/9h5pjxj879y9rzy04m1v9835l4fblw95-python-3.8.2 $ guix pull -p /tmp/test-profile2 -l \Generation 1 Jan 09 2021 12:06:49\ (current) py-test-pkg 1.65-1.e4c466a python 3.8.2 --8<---------------cut here---------------end--------------->8--- So I try creating a second generation and this doesn't barf, it halts just like the guix-science example and requires a ctrl-c. This somewhat suggests that the 'ssh' repo isn't the sole cause of the issue - the issue is something to do with outputting a second generation - this is the common thread in every test I've done. --8<---------------cut here---------------start------------->8--- $ guix remove python -p /tmp/test-profile2 The following package will be removed: python 3.8.2 $ guix package -p /tmp/test-profile2 -l \Generation 1 Jan 09 2021 12:06:49\ py-test-pkg 1.65-1.e4c466a out /gnu/store/vz138cjpkv2m0d1xpq16g6f7ch2c8s86-py-test-pkg-1.65-1.e4c466a python 3.8.2 out /gnu/store/9h5pjxj879y9rzy04m1v9835l4fblw95-python-3.8.2 \Generation 2 Jan 09 2021 12:11:16\ (current) - python 3.8.2 out /gnu/store/9h5pjxj879y9rzy04m1v9835l4fblw95-python-3.8.2 $ guix pull -p /tmp/test-profile2 -l \Generation 1 Jan 09 2021 12:06:49\ py-test-pkg 1.65-1.e4c466a python 3.8.2 \Generation 2 Jan 09 2021 12:11:16\ (current) py-test-pkg 1.65-1.e4c466a ^C --8<---------------cut here---------------end--------------->8--- Finally I tried pulling the latest version of guix to check the issue was still current - same result was seen. --8<---------------cut here---------------start------------->8--- $ guix pull --commit=0fab032ae3849a8827b4ccf40d7a8f70090b4255 Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'... Authenticating channel 'guix', commits 9edb3f6 to 0fab032 (1,047 new commits)... --8<---------------cut here---------------end--------------->8--- Here's the final bit of the strace from the last output to stdout to the 'guix pull' hanging: --8<---------------cut here---------------start------------->8--- write(1, " py-test-pkg 1.65-1.e4c466a\n", 30 py-test-pkg 1.65-1.e4c466a ) = 30 stat("/gnu/store/ar2hw6xc1ipskrqf9nc3nz2mc780phgd-guix-module-union/share/guile/site/3.0/guix/inferior.scm", {st_mode=S_IFREG|0444, st_size=30370, ...}) = 0 stat("/gnu/store/ar2hw6xc1ipskrqf9nc3nz2mc780phgd-guix-module-union/lib/guile/3.0/site-ccache/guix/inferior.go", {st_mode=S_IFREG|0444, st_size=333037, ...}) = 0 openat(AT_FDCWD, "/gnu/store/ar2hw6xc1ipskrqf9nc3nz2mc780phgd-guix-module-union/lib/guile/3.0/site-ccache/guix/inferior.go", O_RDONLY|O_CLOEXEC) = 14 lseek(14, 0, SEEK_END) = 333037 mmap(NULL, 333037, PROT_READ, MAP_PRIVATE, 14, 0) = 0x7f3e8e605000 close(14) = 0 mprotect(0x7f3e8e635000, 89200, PROT_READ|PROT_WRITE) = 0 pipe([14, 15]) = 0 fstat(14, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 fstat(15, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 pipe([16, 17]) = 0 fstat(16, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 fstat(17, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=1024*1024}) = 0 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f3e9faae3d0) = 15339 close(15) = 0 close(16) = 0 read(14, "", 16384) = 0 close(14) = 0 close(17) = 0 wait4(15339, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], 0, NULL) = 15339 stat("/gnu/store/ar2hw6xc1ipskrqf9nc3nz2mc780phgd-guix-module-union/share/guile/site/3.0/guix/repl.scm", {st_mode=S_IFREG|0444, st_size=4925, ...}) = 0 pipe([14, 15]) = 0 fstat(14, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 fstat(15, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 pipe([16, 17]) = 0 fstat(16, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 fstat(17, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=1024*1024}) = 0 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f3e9faae3d0) = 15340 close(15) = 0 close(16) = 0 read(14, "(repl-version 0 1 1)\n", 16384) = 21 write(17, "(() repl-version 0 1 1)\n", 24) = 24 write(17, "(use-modules (guix))\n", 21) = 21 read(14, --8<---------------cut here---------------end--------------->8--- When killing the halted process: ab+ 16058 16046 0 12:35 pts/3 00:00:00 guile -L /tmp/test-profile2-1-link/share/guile/site/3.0 -C /tmp/test-profile2-1-link/share/guile/site/3.0 -C /tmp/test-profile2-1-link/lib/guile/3.0/site-ccache -c (begin (primitive-load "/gnu/store/ar2hw6xc1ipskrqf9nc3nz2mc780phgd-guix-module-union/share/guile/site/3.0/guix/repl.scm") ((@ (guix repl) machine-repl))) kill 16058 I get: --8<---------------cut here---------------start------------->8--- read(14, "", 16384) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=16057, si_uid=1002, si_status=127, si_utime=0, si_stime=0} --- close(14) = 0 close(17) = 0 wait4(16057, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], 0, NULL) = 16057 stat("/gnu/store/ar2hw6xc1ipskrqf9nc3nz2mc780phgd-guix-module-union/share/guile/site/3.0/guix/repl.scm", {st_mode=S_IFREG|0444, st_size=4925, ...}) = 0 pipe([14, 15]) = 0 fstat(14, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 fstat(15, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 pipe([16, 17]) = 0 fstat(16, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 fstat(17, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=1024*1024}) = 0 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fb63c0093d0) = 16058 close(15) = 0 close(16) = 0 read(14, "(repl-version 0 1 1)\n", 16384) = 21 write(17, "(() repl-version 0 1 1)\n", 24) = 24 write(17, "(use-modules (guix))\n", 21) = 21 read(14, "", 16384) = 0 write(2, "Backtrace:\n", 11Backtrace: ) = 11 futex(0x7fb63c773648, FUTEX_WAKE_PRIVATE, 2147483647) = 0 write(2, " 11 (primitive-load \"/h"..., 74 11 (primitive-load "/home/ubuntu/.config/guix/curre…") ) = 74 write(2, "In guix/ui.scm:\n", 16In guix/ui.scm: ) = 16 mmap(0x7fb62ad12000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb62ace0000 write(2, " 2154:12 10 (run-guix-command _"..., 38 2154:12 10 (run-guix-command _ . _) ) = 38 write(2, "In ice-9/boot-9.scm:\n", 21In ice-9/boot-9.scm --8<---------------cut here---------------end--------------->8--- I'm running out of steam a bit here but both this error in ui.scm@2154 and the original backtrace I posted ui.scm@2127 come from the run-guix-command function on attempting a primitive-load of, I assume, the current guix script. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Channel details of profile generation 2021-01-09 13:34 ` Phil @ 2021-01-11 17:34 ` zimoun 2021-01-12 19:16 ` Phil 0 siblings, 1 reply; 9+ messages in thread From: zimoun @ 2021-01-11 17:34 UTC (permalink / raw) To: Phil; +Cc: help-guix Hi, On Sat, 09 Jan 2021 at 13:34, Phil <phil@beadling.co.uk> wrote: > Given a date/time and a profile, it should be possible not only to tell > me what generation of that profile was active at that date/time, but > also the corresponding commit ids on the heads of each channels used to > source the packages. Yes. It is already possible because the information is in the file ’<profile>/manifest’. However, there is no tooling to do that easily yet. Maybe an option ’--export-manifest’ is coming… ;-) http://logs.guix.gnu.org/guix-hpc/2021-01-11.log > So my tool works like this - and, I believe, the output is correct and > methodology sane: > > --8<---------------cut here---------------start------------->8--- > > ubuntu@test-image:~$ guix repl -- profile-generation-on-datetime.scm 2020-12-24T12:00:00 guix-profiles/py-test-pkg-profile > > Profile Dir: guix-profiles/py-test-pkg-profile-39-link > > \Generation 39 Dec 24 2020 11:24:23\ > > Package/Channel Details: > py-test-pkg 1.53 > URL: https://git.savannah.gnu.org/git/guix.git > Branch: master > Commit: 13d532a91178be7b6919b85685b150f941116dfc > > URL: ssh://git@bbserver:7799/ea/guix-packages.git > Branch: master > Commit: ad21880272356219a9e33888cd0c237c8ece02d3 > > python 3.8.2 > URL: https://git.savannah.gnu.org/git/guix.git > Branch: master > Commit: 13d532a91178be7b6919b85685b150f941116dfc > > --8<---------------cut here---------------end--------------->8--- Cool! > Now, ignoring the date/time logic, all my tool is doing is returning the > Package/Channel Details (via the profile manifest) as per above - when > provided with a profile and a generation number. Yes. > ***This is the crux of my original question - can I get the commit id data > supplied by my script for a given profile/generation, from the command > line using already available guix tools?*** Not yet. > (I think the answer to this is - no you cannot do it from the command line) > > The follow-up question was - if not, is my script's approach sane? It seems. From my understanding after a quick look. > PART 2: > > Separately I, probably incorrectly, thought that I might be able to use some > incantation of 'guix pull -l' to achieve the same ends as my script, > given pull's output does seem to include the channel commit ids. Well, it’s what I have tried to explain. :-) > I can't argue with this - I need to do some more digging here to see why > my use of guix pull is barfing, there are some differences between your > test and mine - for example the use of the ssh protocol in the second > channel, so the 2 tests are not identical, but as you see below I run > into issues replicating even with the guix-science channel. Do you mean issues when replicating my example with only the channels guix and guix-science? > --8<---------------cut here---------------start------------->8--- > $ guix package -m my-manifest-2.scm -p /tmp/test-profile > The following packages will be installed: > python 3.8.2 > python-nose-exclude 0.5.0 > > $ guix package -p /tmp/test-profile -l > \Generation 1 Jan 09 2021 11:39:07\ > python 3.8.2 out /gnu/store/9h5pjxj879y9rzy04m1v9835l4fblw95-python-3.8.2 > > \Generation 2 Jan 09 2021 11:43:58\ (current) > + python-nose-exclude 0.5.0 out /gnu/store/k3n4qxakw4rjjg81sfkaxcgln5xhaj3r-python-nose-exclude-0.5.0 > > $ guix pull -p /tmp/test-profile -l > \Generation 1 Jan 09 2021 11:39:07\ > python 3.8.2 > \Generation 2 Jan 09 2021 11:43:58\ (current) > python-nose-exclude 0.5.0 > python 3.8.2 > ^C <-- It's hanging here so I exit with ctrl-c > --8<---------------cut here---------------end--------------->8--- By hanging, do you mean “you were not enough patient“? or “after several minutes” (10-20min), it was not finished yet? > Here's the final bit of the strace from the last output to stdout to the > 'guix pull' hanging: > > --8<---------------cut here---------------start------------->8--- > write(1, " py-test-pkg 1.65-1.e4c466a\n", 30 py-test-pkg 1.65-1.e4c466a [...] > read(14, > --8<---------------cut here---------------end--------------->8--- Thank for the details. Well, does it fail or is it slow? > I'm running out of steam a bit here but both this error in ui.scm@2154 > and the original backtrace I posted ui.scm@2127 come from the > run-guix-command function on attempting a primitive-load of, I assume, > the current guix script. The bracktrace is a fail. But I am not able to reproduce. For your experiment, I do not know if it is failure or slowness. All the best, simon ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Channel details of profile generation 2021-01-11 17:34 ` zimoun @ 2021-01-12 19:16 ` Phil 2021-01-13 14:28 ` Phil 2021-01-13 20:15 ` zimoun 0 siblings, 2 replies; 9+ messages in thread From: Phil @ 2021-01-12 19:16 UTC (permalink / raw) To: zimoun; +Cc: help-guix Hi, Thanks - I think the original question is answered now - however I am curious over why only I can reproduce issues with the incorrect use of 'guix pull'. It's tempting to say it's just undefined behaviour and move on with my life, but I've done a bit more digging.... * This appears to have nothing to do with defined channels - I have now removed the channel.scm completely and can still reproduce the problem. * The problem occurs whenever 'guix pull -l' is called incorrectly on a standard profile which has > 1 generation in it. * There are 2 outcomes I've observed so far - a) a backtrace is given, or b) the command halts for at least 27 minutes in what appears to be a frozen state (but could just be very slow). When I sent my first e-mail about this issue I showed the backtrace as per a) above. I have now tried the experiment on a completely different server and I can reproduce a), that is, I can create a profile containing 1 package in 1st generation, and use 'guix pull -l' OK. Then if I install another package for the 2nd generation I get the backtrace occurring (see below). However - I cannot reproduce b) myself on another machine, that is, I cannot reproduce the freezing of 'guix pull -l' apart from on one specific server. Instead I get the backtrace. Perhaps the problem is specific to running Guix on Ubuntu 18.04 as all my servers run this? ubuntu@foobar:~$ guix pull -p /tmp/test-profile-only-guix-3 -l \Generation 1 Jan 12 2021 18:51:57\ python 3.8.2 \Generation 2 Jan 12 2021 18:52:19\ (current) python 3.8.2 python-numpy 1.17.3 Backtrace: 11 (primitive-load "/home/ubuntu/.config/guix/curre…") In guix/ui.scm: 2154:12 10 (run-guix-command _ . _) In ice-9/boot-9.scm: 1736:10 9 (with-exception-handler _ _ #:unwind? _ # _) 1731:15 8 (with-exception-handler #<procedure 7f757a497390 at ic…> …) 1731:15 7 (with-exception-handler #<procedure 7f757a497360 at ic…> …) 1731:15 6 (with-exception-handler #<procedure 7f757a49f9c0 at ic…> …) In guix/scripts/pull.scm: 636:4 5 (_) In guix/memoization.scm: 100:0 4 (_ #<hash-table 7f757a499fa0 0/31> "/tmp/test-profile-…" …) In guix/scripts/pull.scm: 538:21 3 (_) In guix/inferior.scm: 256:2 2 (inferior-available-packages #f) 251:13 1 (send-inferior-request (defined? (quote #)) #f) In ice-9/boot-9.scm: 1669:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1669:16: In procedure raise-exception: In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #f A few more comments inline. zimoun writes: > yet. Maybe an option ’--export-manifest’ is coming… ;-) > > http://logs.guix.gnu.org/guix-hpc/2021-01-11.log Cool - thanks for pointer. > Do you mean issues when replicating my example with only the channels > guix and guix-science? I've actually reduced this down to no channel.scm file (so only default guix channel), and picking 2 packages in guix - eg python and python-numpy. > > By hanging, do you mean “you were not enough patient“? or “after several > minutes” (10-20min), it was not finished yet? I've waited up to 27 mins with no change. > Thank for the details. Well, does it fail or is it slow? When run with only 1 generation the command returns immediately, so if it is slow, then there's a marked degrading of performance from generation 1 -> 2. My guess is it's hanging not slow - but it is a guess. > > >> I'm running out of steam a bit here but both this error in ui.scm@2154 >> and the original backtrace I posted ui.scm@2127 come from the >> run-guix-command function on attempting a primitive-load of, I assume, >> the current guix script. > > The bracktrace is a fail. But I am not able to reproduce. > For your experiment, I do not know if it is failure or slowness. To be clear the backtrace only failed once I killed the process (after waiting several minutes as discussed above). My hope was by killing it the strace might show something illuminating. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Channel details of profile generation 2021-01-12 19:16 ` Phil @ 2021-01-13 14:28 ` Phil 2021-01-13 20:15 ` zimoun 1 sibling, 0 replies; 9+ messages in thread From: Phil @ 2021-01-13 14:28 UTC (permalink / raw) To: zimoun, help-guix Just to add - I repeated the 'guix pull' experiments in the original e-mail on Guix System using a VirtualBox and I could not reproduce either the hanging or backtrace issues described. So whatever the issue is it's limited to foreign OS use of Guix - but does seem to be repeatable on Ubuntu 18.04 (at least the backtrace is). This may explain why Simon could not reproduce? Phil writes: > Hi, > > Thanks - I think the original question is answered now - however I am > curious over why only I can reproduce issues with the incorrect use of > 'guix pull'. It's tempting to say it's just undefined behaviour and > move on with my life, but I've done a bit more digging.... ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Channel details of profile generation 2021-01-12 19:16 ` Phil 2021-01-13 14:28 ` Phil @ 2021-01-13 20:15 ` zimoun 1 sibling, 0 replies; 9+ messages in thread From: zimoun @ 2021-01-13 20:15 UTC (permalink / raw) To: Phil; +Cc: help-guix Hi, On Tue, 12 Jan 2021 at 19:16, Phil <phil@beadling.co.uk> wrote: > Then if I install another package for the 2nd generation I get the > backtrace occurring (see below). I cannot reproduce this. However, I note that it is what I consider as slow: ~15s to display. > Perhaps the problem is specific to running Guix on Ubuntu 18.04 as all > my servers run this? Hum? I do not know. Do you have the same configuration (PATH etc.) on your servers (which have the issue) and on your other machine (which has not). What does $ which guix say? >> Do you mean issues when replicating my example with only the channels >> guix and guix-science? > > I've actually reduced this down to no channel.scm file (so only default > guix channel), and picking 2 packages in guix - eg python and > python-numpy. --8<---------------cut here---------------start------------->8--- $ guix package -i python -p /tmp/test-profile -v 0 Le paquet suivant sera installé : python 3.8.2 conseil : Pensez à paramétrer les variables d'environnement nécessaires en lançant : GUIX_PROFILE="/tmp/test-profile" . "$GUIX_PROFILE/etc/profile" Autrement, regardez `guix package --search-paths -p "/tmp/test-profile"'. $ guix package -i python-numpy -p /tmp/test-profile -v 0 Le paquet suivant sera installé : python-numpy 1.17.3 conseil : Pensez à paramétrer les variables d'environnement nécessaires en lançant : GUIX_PROFILE="/tmp/test-profile" . "$GUIX_PROFILE/etc/profile" Autrement, regardez `guix package --search-paths -p "/tmp/test-profile"'. $ time guix pull -p /tmp/test-profile -l Génération 1 13 janv. 2021 21:04:10 python 3.8.2 Génération 2 13 janv. 2021 21:04:29 (actuelle) python 3.8.2 python-numpy 1.17.3 real 0m5,989s user 0m14,709s sys 0m0,572s --8<---------------cut here---------------end--------------->8--- All the best, simon ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2021-01-13 20:19 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-12-28 17:52 Channel details of profile generation Phil 2020-12-30 13:41 ` zimoun 2021-01-04 17:29 ` Phil 2021-01-05 17:01 ` zimoun 2021-01-09 13:34 ` Phil 2021-01-11 17:34 ` zimoun 2021-01-12 19:16 ` Phil 2021-01-13 14:28 ` Phil 2021-01-13 20:15 ` zimoun
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).