help-guix
[Top][All Lists]
Advanced

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

'guix build [P]' followed by 'guix install /gnu/store/[...]' vs. 'guix i


From: Thomas Schwinge
Subject: 'guix build [P]' followed by 'guix install /gnu/store/[...]' vs. 'guix install [P]'
Date: Sun, 03 Nov 2024 18:10:32 +0100
User-agent: Notmuch/0.30+8~g47a4bad (https://notmuchmail.org) Emacs/29.4 (x86_64-pc-linux-gnu)

Hi!

I was under the impression that 'guix build [P]' followed by
'guix install /gnu/store/[...]' would produce equivalent results to
'guix install [P]' -- but evidently that's not generally the case?  With
up-to-date Guix:

    $ guix build gcc-toolchain@4.8.5
    [...]
    /gnu/store/zq67w51hf6vpk3s2nriwnl7658biq9dz-gcc-toolchain-4.8.5-debug
    /gnu/store/lahbqdidl3ynasd0vzxz2i0dmgh0v16i-gcc-toolchain-4.8.5
    /gnu/store/82i6qfdqspg43rkphw0hhafny76z5bbr-gcc-toolchain-4.8.5-static
    $ guix install -p bi 
/gnu/store/lahbqdidl3ynasd0vzxz2i0dmgh0v16i-gcc-toolchain-4.8.5
    [...]

..., where '/gnu/store/[...]-gcc-toolchain-4.8.5' is the main ("out")
output, which should -- per my understanding -- correspond to directly
'guix install'ing:

    $ guix install -p i gcc-toolchain@4.8.5
    [...]

But now compare the two installations:

    $ diff -ru bi/ i/
    diff -ru bi/etc/profile i/etc/profile
    --- bi/etc/profile      1970-01-01 01:00:01.000000000 +0100
    +++ i/etc/profile       1970-01-01 01:00:01.000000000 +0100
    @@ -8,4 +8,10 @@
     # When GUIX_PROFILE is undefined, the various environment variables refer
     # to this specific profile generation.
     
    -export 
PATH="${GUIX_PROFILE:-/gnu/store/fh258i84wjshhaxnv4bb2qm6xipfxsnl-profile}/bin:${GUIX_PROFILE:-/gnu/store/fh258i84wjshhaxnv4bb2qm6xipfxsnl-profile}/sbin${PATH:+:}$PATH"
    +export 
PATH="${GUIX_PROFILE:-/gnu/store/2vk4q0ffg4621pz4jd9pprscpm9dfiwf-profile}/bin:${GUIX_PROFILE:-/gnu/store/2vk4q0ffg4621pz4jd9pprscpm9dfiwf-profile}/sbin${PATH:+:}$PATH"
    +export 
GUIX_LOCPATH="${GUIX_PROFILE:-/gnu/store/2vk4q0ffg4621pz4jd9pprscpm9dfiwf-profile}/lib/locale${GUIX_LOCPATH:+:}$GUIX_LOCPATH"
    +export 
LIBRARY_PATH="${GUIX_PROFILE:-/gnu/store/2vk4q0ffg4621pz4jd9pprscpm9dfiwf-profile}/lib${LIBRARY_PATH:+:}$LIBRARY_PATH"
    +export 
OBJCPLUS_INCLUDE_PATH="${GUIX_PROFILE:-/gnu/store/2vk4q0ffg4621pz4jd9pprscpm9dfiwf-profile}/include/c++:${GUIX_PROFILE:-/gnu/store/2vk4q0ffg4621pz4jd9pprscpm9dfiwf-profile}/include${OBJCPLUS_INCLUDE_PATH:+:}$OBJCPLUS_INCLUDE_PATH"
    +export 
OBJC_INCLUDE_PATH="${GUIX_PROFILE:-/gnu/store/2vk4q0ffg4621pz4jd9pprscpm9dfiwf-profile}/include${OBJC_INCLUDE_PATH:+:}$OBJC_INCLUDE_PATH"
    +export 
CPLUS_INCLUDE_PATH="${GUIX_PROFILE:-/gnu/store/2vk4q0ffg4621pz4jd9pprscpm9dfiwf-profile}/include/c++:${GUIX_PROFILE:-/gnu/store/2vk4q0ffg4621pz4jd9pprscpm9dfiwf-profile}/include${CPLUS_INCLUDE_PATH:+:}$CPLUS_INCLUDE_PATH"
    +export 
C_INCLUDE_PATH="${GUIX_PROFILE:-/gnu/store/2vk4q0ffg4621pz4jd9pprscpm9dfiwf-profile}/include${C_INCLUDE_PATH:+:}$C_INCLUDE_PATH"
    diff -ru bi/manifest i/manifest
    --- bi/manifest 1970-01-01 01:00:01.000000000 +0100
    +++ i/manifest  1970-01-01 01:00:01.000000000 +0100
    @@ -9,4 +9,40 @@
         (("gcc-toolchain"
           "4.8.5"
           "out"
    -      "/gnu/store/lahbqdidl3ynasd0vzxz2i0dmgh0v16i-gcc-toolchain-4.8.5"))))
    +      "/gnu/store/lahbqdidl3ynasd0vzxz2i0dmgh0v16i-gcc-toolchain-4.8.5"
    +      (search-paths
    +        (("C_INCLUDE_PATH" ("include") ":" directory #f)
    +         ("CPLUS_INCLUDE_PATH"
    +          ("include/c++" "include")
    +          ":"
    +          directory
    +          #f)
    +         ("OBJC_INCLUDE_PATH"
    +          ("include")
    +          ":"
    +          directory
    +          #f)
    +         ("OBJCPLUS_INCLUDE_PATH"
    +          ("include/c++" "include")
    +          ":"
    +          directory
    +          #f)
    +         ("LIBRARY_PATH" ("lib" "lib64") ":" directory #f)
    +         ("GUIX_LOCPATH" ("lib/locale") ":" directory #f)
    +         ("TZDIR" ("share/zoneinfo") #f directory #f)))
    +      (properties
    +        ((provenance
    +           (repository
    +             (version 0)
    +             (url "https://git.savannah.gnu.org/git/guix.git";)
    +             (branch "master")
    +             (commit
    +               "8964dfdb84f7d21dbc89c217ca4f4546a15990af")
    +             (name guix)
    +             (introduction
    +               (channel-introduction
    +                 (version 0)
    +                 (commit
    +                   "9edb3f66fd807b096b48283debdcddccfea34bad")
    +                 (signer
    +                   "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 
54FA")))))))))))

This means that the 'bi' installation isn't usable.

Where is the error in (very likely) my thinking?


How do I, by the way, programmatically get from the 'guix build' list of
(here: three) outputs to the main ("out") output?  Via
'/gnu/store/*-gcc-toolchain-4.8.5.drv' (as produced by
'guix build --derivations [...]'), I suppose, but what's the standard
way?  Or, is there even a way to instruct 'guix build' to only produce
the main ("out") output, for example?


All this came up in context of wanting to install '--system=i686-linux'
packages on '--system=x86_64-linux', and I'm not able to just
'guix install --system=i686-linux gcc-toolchain@4.8.5' there.

(Is there a fundamental reason for not allowing that, or just not yet
implemented?)


Grüße
 Thomas



reply via email to

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