Hi Daniel, Daniel Gerber <d...@atufi.org> skribis:
> From reading the doc on `guix environment`: > > -L, --load-path=DIR prepend DIR to the package module search path > > I would expect these to be exactly equivalent: > > $ export GUIX_PACKAGE_PATH=; guix environment -L path ... > $ export GUIX_PACKAGE_PATH=path; guix environment ... > > Yet they differ. With libuv@1.24.0 in the guix channel (a37bdf4) and > libuv@1.26.0 in --and also node@11.10.0 only in-- > /gnu/guix-local-packages/: > > $ export GUIX_PACKAGE_PATH=/gnu/guix-local-packages/; guix environment > --no-grafts -C node@11.10.0 --ad-hoc strace gdb -- ls /gnu/store/ > |grep -o libuv-.* > libuv-1.26.0 > > $ export GUIX_PACKAGE_PATH=; guix environment -L > /gnu/guix-local-packages/ --no-grafts -C node@11.10.0 --ad-hoc strace > gdb -- ls /gnu/store/ |grep -o libuv-.* > libuv-1.24.0 > > Is this the intended behaviour? Probably not. I experimented a bit and couldn’t find any evidence that the search path order would differ. However, what do /gnu/guix-local-packages/ contain? I suppose it provides node@11.10.0? Then my guess is that “node@11.10.0” is ambiguous and that ‘specification->package’ chooses one of the two in a non-deterministic fashion. Can you show the output of: guix package -A node guix package -A node -L /gnu/guix-local-packages GUIX_PACKAGE_PATH=/gnu/guix-local-packages guix package -A node ? TIA, Ludo’.