Open dmayle opened 3 years ago
It appears this is due to the architecture of direnv. buildFHSUserEnv depends on having a sub-shell in order to setup a chroot, but direnv just evaluates and updates environment variables.
Can you try using lorri shell
instead? Does this work? It should run
the shell hook and then execute your normal user shell.
dmayle @.***> writes:
It appears this is due to the architecture of direnv. buildFHSUserEnv depends on having a sub-shell in order to setup a chroot, but direnv just evaluates and updates environment variables.
I'm seeing this as well.
My shell.nix:
{ pkgs ? import <nixpkgs> { } }:
(pkgs.buildFHSUserEnv {
name = "py310_fhs";
targetPkgs = pkgs: (with pkgs; [
gcc
python3
python3Packages.pip
python3Packages.virtualenv
zsh
]);
runScript = "zsh";
}).env
Works fine with nix-shell
, seems to evaluate with lorri shell
but not at all with direnv. Notably, the chroot doesn't seem active when instantiated with lorri shell
but does with nix-shell
.
lorri --version
1.5.0
Describe the bug When using buildFHSUserEnv in shell.nix, nix-shell properly sets up an FHS user environment with /usr/lib, /lib/... etc. When using lorri with the shame shell.nix, however, it is not properly setup.
To Reproduce Steps to reproduce the behavior:
Expected behavior The go library should build without errors
Metadata lorri did not crash
Additional context