When doing darwin-rebuild --switch on a system, I get the error sudo: nix-env: command not found. What’s the proper way to fix this error? Thanks.
What happens if you run nix-env directly?
That works fine - it seems only sudo has an issue. Still means that darwin-rebuild doesn’t work though.
Does it fail if you manually run sudo nix-env?
If that fails, I’d check /etc/sudoers, I guess. I haven’t used them, but it has some settings that could either be discarding your user’s PATH (env_check and env_delete, maybe more?) or hard-setting it (secure_path).
Edit: I guess you could check on the PATH with something like sudo /bin/sh -c 'echo $PATH'
I was experiencing the same issue, after a fresh multi-user install on a Ubuntu 22.04 VM.
nix-env works fine when I’m logged in as a regular user. It also works fine when I open a root prompt with sudo su -. But sudo nix-env yields
sudo: nix-env: command not found
@abathur it seems that your hunch was correct. My /etc/sudoers contained a secure_path option, which overrides the $PATH when using sudo. Commenting it out (probably not the correct long-term solution!) solves the issue.