[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 'guix build [P]' followed by 'guix install /gnu/store/[...]' vs. 'gu
From: |
Ludovic Courtès |
Subject: |
Re: 'guix build [P]' followed by 'guix install /gnu/store/[...]' vs. 'guix install [P]' |
Date: |
Sun, 10 Nov 2024 00:31:12 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Hi, Thomas!
Thomas Schwinge <tschwinge@baylibre.com> skribis:
>> $ 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/
[...]
>> --- 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)
[...]
>> This means that the 'bi' installation isn't usable.
This may sound surprising but it’s expected.
The reason is that when you run:
guix install gcc-toolchain
‘gcc-toolchain’ is a live package with metadata that Guix uses when it
builds the profile, in particular data about search paths.
However, when you run:
guix package -i /gnu/store/…
then all Guix sees is an inert store item with no associated metadata.
This is why it ends up creating a profile without search path info.
This is one of the reasons why I would recommend against that second
method. It might be useful as a last resort but should be avoided as
much as possible.
(For development, I’d also recommend ‘guix shell’ over ‘guix install’!)
HTH,
Ludo’.