I’m new today to Nix;)
, but do you remember the scene from Jurassic Park, when she said “It’s a UNIX System. I know this”?
Well, I ran into the issue that vi was not installed on Nix and that actually makes Nix non-conformant to the POSIX UNIX specification, so, it’s not a UNIX before vi is installed.
I don’t care about vi, as I’m an Emacs user, but I was unable to use the system, cause I didn’t know where to begin.
Of course, I found out that nano was installed and all is good now, but I think that vi must be present on a new install;)
That isn’t the biggest violation of the POSIX specification in NixOS I’m afraid
– EXTREMELY PEDANTIC MODE ON –
Actually, very few and mostly irrelevant operating systems can be called “UNIX”. These certifications are handed out by the Open Group (who still exists and has the UNIX trademark), are very expensive and limiting in terms of what you can do for the sake of compatibility.
POSIX is a similar set of standards. Nowadays it’s pratically the same as the “Single UNIX Specification”, sans trademark. Again, there are very few certified operating systems, with a majority of Unix-like systems being mostly compliant but not really.
– EXTREMELY PEDANTIC MODE OFF –
Most GNU/Linux distributions intentionally do not follow the standards (GNU’s Not UNIX, afterall) because sometimes adhering to 1970s technology is stupid. Instead they formed their own standard, the Linux Standard Base, which then everyone promptly abandoned because it’s just a hassle to be (and continue to be) certified.
Then there’s NixOS. NixOS intentionally breaks away from the most basic Unix feature: the directory structure is completely different from the normal one (but it’s just a lot of cruft blessed into a standard, anyway).
For this reason you can’t just download any software from the internet and run it in NixOS: it won’t find half of the stuff it needs.
vi not being installed is the least of your concern.
You can use emacs in the installer with
nix-shell -p emacs
I think this should be documented somewhere, because nano is horrible for many users IMO.
That’s a beautiful thread, and I love how this message describes NixOS at the end in an attempt at reductio ad absurdum: Understanding the bin, sbin, usr/bin , usr/sbin split