fsquillace / junest

The lightweight Arch Linux based distro that runs, without root privileges, on top of any other Linux distro.
GNU General Public License v3.0
2.08k stars 111 forks source link

Extend $PATH in common.sh with system $PATH. #302

Closed schance995 closed 1 year ago

schance995 commented 1 year ago

This lets junest work on non-FHS systems such as GNU Guix.

fsquillace commented 1 year ago

Hi,

Thanks for this PR. I am still not sure what is the intention here though. How this can help your use case? Can you provide a concrete example?

schance995 commented 1 year ago

GNU Guix does not have /bin or /usr/bin in $PATH, so Junest will not find anything there unless $PATH is appended.

brainstorm@host ~/.local/share/junest (git)-[master] % ./bin/junest
/home/brainstorm/.local/share/junest/lib/core/common.sh: line 37: uname: command not found
127 brainstorm@host ~/.local/share/junest (git)-[master] % ls /bin /usr/bin
/bin:
total 8
lrwxrwxrwx 1 root root 63 Oct 31 21:19 bash -> /gnu/store/d99ykvj3axzzidygsmdmzxah4lvxd6hw-bash-5.1.8/bin/bash
lrwxrwxrwx 1 root root 61 Oct 31 21:19 sh -> /gnu/store/d99ykvj3axzzidygsmdmzxah4lvxd6hw-bash-5.1.8/bin/sh

/usr/bin:
total 8
lrwxrwxrwx 1 root root 63 Oct 31 21:19 bash -> /gnu/store/d99ykvj3axzzidygsmdmzxah4lvxd6hw-bash-5.1.8/bin/bash
lrwxrwxrwx 1 root root 66 Oct 31 21:19 env -> /gnu/store/8fpk2cja3f07xls48jfnpgrzrljpqivr-coreutils-8.32/bin/env

This should in theory let junest run in NixOS without #282.

A workaround is to run junest in a Guix container with FHS emulation, so that $PATH is available. I don't know if NixOS has something similar.

guix shell --container --emulate-fhs --no-cwd --share=$HOME/.junest --share=$HOME/.local/share/junest coreutils bash gzip -- ~/.local/share/junest/bin/junest
fsquillace commented 1 year ago

Makes sense! Merging to dev branch.

Thanks again!