Hi, Thomas!
Thomas Schwinge <[email protected]> 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 [email protected]
>> [...]
>>
>> 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’.