Is it possible to use lorri + shell.nix to modify /etc/hosts for a particular project on my machine?
Is it just me or does it not work in NixOS?
$ nixos-version
21.03pre244932.84d74ae9c9c (Okapi)
$ echo 'n nixos.org' >> ~/.hosts
$ export HOSTALIASES=~/.hosts
$ curl -v n
* Could not resolve host: n
* Closing connection 0
curl: (6) Could not resolve host: n
Edit: added NixOS version.
Yea you are correct. It does not seem to work on my end as well.
/etc
is usually owned by root, which would mean you need to execute nix-shell
as root. Which seems way outside of it’s normal bounds of responsibility.
Another option might be buildFHSUserEnv
, but I’ve never used it with nix-shell.
I would try to see if there’s any user-level options that are available.
Found this:
It emulates per-user hosts using LD_PRELOAD
. Just tested and it works fine for me.
for many reasons, I’m kinda of glad it doesn’t work.
Indeed! I think you raised a valid point.
@j-k oh thanks! Indeed, I just prototyped this, fingers are still hot:
https://github.com/numtide/devshell/pull/28
If someody has interest in promoting it’s inclusion, I (and certainly @zimbatm, too) would appreciate if you could expose your use case in the corresponding issue.
There is an ester egg on the related issue akin to figiel/hosts
I use buildFHSUserEnv
with nix-shell all the time. It works fine (though I’d like more control over how much of /etc it carries over to ‘inside’ the userenv - right now it only selects the essentials, and I lose e.g. my zsh configuration).
I don’t see an obvious way to overwrite /etc/hosts
in there, though.
Thank you @blaggacao. I have been busy lately. Will try and let you know. Although I do not use devshell
mkDevShell
is intended to be an improved successor of mkShell
by the same author.