Julien Lepiller <jul...@lepiller.eu> writes: > Le 23 mars 2021 18:25:38 GMT-04:00, c4t0 <c...@riseup.net> a écrit : >> >>Hi, >> >>I'm having trouble importing a package from hackage, so I tried to >>debug >>the import source code. After cloning guix I found that I can't start a >>pure environment: >> >>guix environment guix --pure --ad-hoc help2man git strace >>Command 'lesspipe' is available in the following places >> * /bin/lesspipe >> * /usr/bin/lesspipe >>The command could not be located because '/bin:/usr/bin' is not >>included in the PATH environment variable. >>lesspipe: command not found > > This is probably because a start file from bash or your shell uses > lesspipe, but it's not available in the environment. Something similar > happens to me on Fedora where it wants to install software that's > already there. I simply deny the request to install, as it's not a > fatal error. >
You're right, the culprit was: # make less more friendly for non-text input files, see lesspipe(1) [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" so I replace it with: [ -x /usr/bin/lesspipe ] \ && [ $(echo $PATH | grep ':/bin:' >/dev/null; echo $?) -eq 0 ] \ && eval "$(SHELL=/bin/sh lesspipe)" a little verbose, but it works. >> >>If I use --container it works: >> >>$guix environment guix --pure --ad-hoc help2man git strace lesspipe >>--container >>me@mypc ~/guix/git/guix [env]$ >> >>but then I have problems connecting with the daemond: >>./pre-inst-env guix build hello >>guix build: error: failed to connect >>to`/usr/local/var/guix/daemon-socket/socket': No such file or directory > > Here, you probably.forgot to pass --localstatedir as documented in the > manual. If you don't do so, it might result in a broken guix installation! > Ok, after: $guix environment guix --pure --ad-hoc help2man git strace $./bootstrap $./configure --localstatedir=/var $./pre-inst-env guix build hello it builds fine! >> >>(also there isn't any file in my user environment with that name) >> >>So I have to run guix environment with --network and start one: >>$guix environment guix --pure --ad-hoc help2man git strace lesspipe >>--container >>me@mypc ~/guix/git/guix [env]$ >> >>and then >>./pre-inst-env guix-daemon & >>and >>./pre-inst-env guix build hello >> >>it appears to work, but really I don't know if i'm making a mess at >>this point... I can't pass --build-users-group=guixbuild because it >>doesn't exist inside the container. >>And besides more that one daemon in the same store shurely produces >>nasty race conditions. > > You shouldn't run guix-daemon from the checkout. It is not > needed. Normally, you should be able to share /var/guix inside the > container, but the container itself should not be needed. > Ok, it was my mistake, didn't realize that the problem was in .bashrc; I'll use it without a container. No problem using the store, when developing then? I guess that the calculated hash will be different and I will not break anything. The environment ¢ommand takes care of protecting the profile. Maybe I should have sended this mail to help-guix. Thanks again!