5 ms·
nice concept. can't find information on if this is based on another distro, or if it's an all new one, but the underlying idea is solid as for me it tries to so
by vectorEQ 8y ago
nice concept. can't find information on if this is based on another distro, or if it's an all new one, but the underlying idea is solid as for me it tries to solve one of the fundamental issues with linux which makes people move to things like containers or complicated deployment tools and scripts. this seems a lot more straightforward.
- mapcars 8y agoAfaik it is all new.
- deleted 8y ago[deleted]
- nine_k 8y agoNixOS is based on Nix the package manager and the package collection managed by it, which is "the distro" for all practical purposes. Interestingly, you can use Nix under other distros and even MacOS just fine, due to the way it isolates dependencies: https://nixos.org/nix/ https://nixos.org/nix/
- Filligree 8y agoAlthough the Mac version of the packages is far more likely to be broken or buggy in some way. Unfortunate, but an inevitable consequence of not many people using it.
- ris 8y agoBut also a consequence of having to float on top of non-free/uncontrollable base libraries. The only reason Nix works so well on Linux is because it can be in control of everything down to the kernel. For (presumably) this reason, nixpkgs will tend to only work well for one macos release at a time. There were also no pre-built binary packages for macos last I checked, so, having to build everything, if one dependency has a slightly flaky build procedure, it spells trouble.
- danieldk 8y agoThere were also no pre-built binary packages for macos last I checked There is a binary cache for macOS now. Hydra build status: https://hydra.nixos.org/job/nixpkgs/nixpkgs-18.09-darwin/darwin-tested#tabs-status https://hydra.nixos.org/job/nixpkgs/nixpkgs-18.09-darwin/dar...
- pknopf 8y agoI created a tool that allows you to boot natively (from grub) directly into Docker images. https://godarch.com/ https://godarch.com/ It supports Debian/Ubuntu/Arch/VoidLinux currently (Gentoo soon). With Darch, your entire desktop is scripted and reproducible. Here are my Arch recipes: https://github.com/pauldotknopf/darch-recipes https://github.com/pauldotknopf/darch-recipes I find this to be a better middle-ground between <your favorite OS> and Nix.
- indigodaddy 8y agoVery neat concept, you should Show HN that. Reminds me of another similar project where instead he had everything running in RAM. Totally forget the name of that project now though.
- pknopf 8y agoWith Darch, your image isn't in RAM, but all of your runtime changes are, so they are discarded on reboot. That means only commands that are baked into your image are persisted. That means you can test new packges without fear that it will leave boogers on your machine.
- aidenn0 8y agoI use it as my daily driver on my laptop and it's great. It's very simple to add new source-based programs. It doesn't handle binary-only applications though (e.g. NoMachine, games, &c.). It has a couple of options to make those work, and it's almost always possible to get it to work natively, so if there's not already a nix expression for the app I want, I just take the expedient path of having a docker container with an ubuntu user-space, since pretty much all proprietary apps run on ubuntu.
- nickik 8y agoShould Flatpak solve that in many cases?
- Filligree 8y agoIf a flatpak exists for that program, sure.
- Filligree 8y agoIf you don't want to bother with the container, `steam-run` will almost always work. That gives the same Ubuntu chroot (aka. buildFHSUserEnv) as is used by Steam.
- aidenn0 8y agoI found buildFHSUserEnv to be somewhat more fragile than actually using ubuntu. Again, I could probably get it to work, but the container is trivial.
- agumonkey 8y agoit was pretty entirely new at the time it started, lots of similar things were done since (guixsd is a port of nixos using gnu guile dsl instead of the nix language, reproducible builds are also strongly related to nixos)
- village-idiot 8y agoIt's not based on another distro, although I guess its closest cousin would be Gentoo, which is another source-only distro. By default everything in NixOS is compiled from source, but they use some novel techniques to reduce duplication, and you can setup binary caches for your workplace if you wish. Edit: apparently packages are distributed in binary by default, but if you customize options it’ll be compiled locally. My mistake. NixOs is the amalgamation of 3 things: Nix, Nixpkgs, and the other bits it takes to make an os. Nix is a programming language and a packaging tool. It allows packages to be programmed in a type safe way, then executed to install the actual libraries or binaries. This is the area of the system that I actually know the least about. Nixpkgs is a large collection of packages for Nix. The community really has worked on this set of stuff like gangbusters, it's quite impressive how many things they've wired in from scratch. Each package specifies its dependencies, and the various options it accepts to tweak various options. A good example would be setting the data directory for the postgresql service. NixOs combines the previous two items along with the other bits it takes to make an OS work. So they provide official installation instructions and media, configure how Nix is going to actually be run on NixOs (as compared to say, OSX), provide stable channels for various versions, etc. Basically all the regular things you expect out of a distro. Personally, I'm not exactly sure if this is where Linux is going to go, but I think that this is how Linux would have been built if disk was much cheaper back in 1970ish. A lot of the regular problems of systems management are completely solved in NixOs. Need two different versions of the same shared library? No worries, they can each have their own copy, and Nix will automatically make sure the correct one, specified by the hash of all the build flags, will be the one that's loaded into memory for said program. Have a shared system? Great! Users can install userland programs without root privileges. Because items are inserted into the nix store idempotently and paths are not universal, I can install vim without any other users seeing that, and without root. The only thing that takes root privileges are services (e.g. Postgres), or installing programs for universal access. Sadly this does come with some downsides. A lot of programs over the years have come to make very bad assumptions about program location, or the ability to modify the PATH variable. A good example of this issue is RVM, which for the life of me I could not get to work.
- mbrock 8y agoJust a note: with a normal installation, NixOS will basically never compile anything on your computer, unless you customize a package or use a very recent revision of the package tree that hasn't gone through the build server yet.