5 ms·
I keep going to the NixOS website to understand what NixOS is. it says it's an "OS". I've been in the computer thing for a long time and in my experience, an
by zzzeek 5y ago
I keep going to the NixOS website to understand what NixOS is.
it says it's an "OS". I've been in the computer thing for a long time and in my experience, an "OS" is the thing that runs when your machine first boots up. From this it follows that you can't run an "OS" without rebooting a machine (or running it in a VM, or whatever).
Yet I go to nixos.org, click "Learn" (let's assume I'm the supposed "non technical user") click "install nix".
And what we see is two lines of shell that seems to be starting some kind of daemon. I just ran that locally, and it even states, it's going to move things around and start a daemon:
- set up the "default profile" by creating some Nix-related files in
/root
- back up /etc/bashrc to /etc/bashrc.backup-before-nix
- update /etc/bashrc to include some Nix configuration
- back up /etc/zshrc to /etc/zshrc.backup-before-nix
- update /etc/zshrc to include some Nix configuration
- load and start a service (at /etc/systemd/system/nix-daemon.service
and /etc/systemd/system/nix-daemon.socket) for nix-daemon
is nixos an "OS"? Can I install it on a machine with no pre-existing OS booting from a USB stick? would be great if their docs could explain if nixos is an "OS" or some kind of runtime modification of linux / OSX. (Edit: wikipediaing / googling, it looks like you can in fact install it from an ISO, and that Nix is basically a linux distribution. I guess it has some kind of installer that can "morph" an existing distro into nix? their site should be less cagey about basic details like this).
I think if the NixOS site / docs could do a better job, or any job at all, of answering this question it would make it more clear what exactly it is because I only have a vague idea that it's a package manager that rides on top of existing OSes, which is great, but the site doesn't make it look like that.
- Nullabillity 5y agoIt's a bit confusing (and the old site did a better job explaining this), but basically, you have two separate projects: Nix (a package manager/build system) and NixOS (a standalone Linux distribution that uses the Nix package manager).
- zzzeek 5y agocan i use the nix package manager without using nixos? is that what the "install" link I referred towards is setting up ? my original impression of nix years ago was that oh it's a package manager, maybe like the old BSD packagesource thing, great. but then "NixOS" came in and seemed to confuse things. all good stuff but wow that website needs to be reorganized.
- deleted 5y ago[deleted]
- Nullabillity 5y ago> can i use the nix package manager without using nixos? is that what the "install" link I referred towards is setting up ? my original impression of nix years ago was that oh it's a package manager, maybe like the old BSD packagesource thing, great. but then "NixOS" came in and seemed to confuse things. Yes. On the download page[0] you have two sections: Nix (the one you were looking at), and NixOS (which is packaged as a traditional disk image).
- easygenes 5y agoYes, I agree it needs to be fixed. I noted this source of confusion earlier and appreciate the confirmation. Will be working on getting a disambiguation header on the main download page soon. You’re on the right track. Nix is a package manager you can use on just about any Linux distribution, and also MacOS. NixOS is a Linux distro built with and including Nix (and using Nixpkgs as its package repo). Nix is also the name of the functional programming language created to describe packages in Nix the package manager. Nix is also a pun on the word meaning “nothing”, which is a nod to how it’s all purely functional.
- amarant 5y agoThere is some somewhat confusing naming here, and I believe it is the cause of your confusion. There is a operating system named Nixos. It uses a package manager called Nix. The package manager can be installed in other operating systems. The package manager is configured using a functional language also called Nix. What you installed was either the package manager, or a interpreter for the language. They could've named these things better IMO
- bogwog 5y agoGuix (https://guix.gnu.org/ https://guix.gnu.org/) is a similar project, and it has the same issue regarding confusing terminology. I wonder if adoption of these otherwise awesome projects would improve if they did a better job with communication?
- trenchgun 5y agoI don't think it is confusing. There is a package manager Nix, and a distro built around it, NixOS. And the package repository Nixpkgs. What is confusing however, is that the configuration language and the package manager have the same name, Nix.
- zzzeek 5y agoin my experience (writing SQLAlchemy) it's good to give all of the "<Brandname>" titles a suffix. That is, instead of having "Nix" and "Nix OS", you would have, "Nix Package Manager" and "Nix OS". I had *exactly* the same experience with SQLAlchemy. for years and years, it was, "SQLAlchemy" and "SQLAlchemy ORM". The online discussion was always the same: "ORMs, I like ORMs, I dont like ORMs, blah blah blah" and constantly trying to say, "SQLAlchemy has a whole non-ORM part too!" and this was only vaguely received. Problem was 90% solved by *changing the name*, introducing the new term "SQLAlchemy Core": SQLAlchemy Core SQLAlchemy ORM now when people talk about SQLAlchemy, you will regularly see discussions with "I only use Core, not ORM" or "did you try that with Core?" There are still people who think SQLAlchemy is in its entirety an ORM but it's a vastly thinner slice of less engaged users -the path to understanding the different components is helped enormously by qualifying them all.
- Arcuru 5y agoI agree, the documentation is not good, but here is the explanation of what the different components are: https://nixos.wiki/wiki/Nix_Ecosystem https://nixos.wiki/wiki/Nix_Ecosystem
- Ericson2314 5y agoThe website has decided the best rhetorical approach is to describe what the "ecosystem does for you", and thus not talk that much about Nix vs NixOS vs Nixpkgs up front. But I think that might be mistake. I would lead with: Nix - package manager / build systems for end-to-end reproducibility at scale. Nixpkgs - Extremely comprehensive package repository built using Nix. NixOS - Linux distribution built around Nixpkgs Home-Manager - doftfile manager built around Nixpkgs There are other tools, but they are much more niche, so I would start with that. I think that clears up with what you and many others have asked, and doesn't "distract from the sales pitch" too much.
- easygenes 5y agoYes, the wiki takes the opposite approach. See: https://nixos.wiki/wiki/NixOS_Wiki:About https://nixos.wiki/wiki/NixOS_Wiki:About “The NixOS Wiki is a community-run project to document the Nix Ecosystem. NixOS is a Linux distribution which is created with the Nix package manager as its foundation. NixOS relies upon the extensive Nixpkgs package repository, which is one of the largest and most up-to-date package sources in the Linux world. The Nix ecosystem also includes tools like Hydra, for continuous integration testing, and NixOps, for deploying NixOS machines to networks and clouds (e.g. EC2, GCE, and Azure).”