• 0 Posts
  • 3 Comments
Joined 3 years ago
cake
Cake day: July 21st, 2023

help-circle

  • I switched to nixos years ago. Its better now than it ever has been as far as available packages and etc. But it does present issues if you get off the beaten path - the “now you have two problems” issue. For instance:

    • if software is not packaged for nixos already, you won’t be able to follow the ‘build from source’ directions on its github page or etc. You have to make a nix package or at least development environment first. That can be tricky and you won’t have help from the software dev.
    • If software downloads exes that require libraries to be in a certain standard location, well, they won’t work. Android studio for instance, downloads compilers and so forth. There are workarounds, mostly, but it can take a while to discover and get working and I’m sure many people give up. Again, the android studio software and documentation will be no help at all.

    That said, more and more projects are supporting nix, and nixpkgs has gotten really big. I think they support more packages than any other distro now.


  • I think nixos is still niche, but seems to be gaining momentum. It has some unique features:

    • Every package has its own dependencies, so you can install a 7 year old firefox alongside the latest, and have no interference.
    • Packages with dependencies in common still share them (for space savings).
    • Abandons the HFS, but can still fake it for apps that need it.
    • Can make dev environments that are exactly reproducible across machines, and only exist within a specific shell session. So you can have a project that relies on an out of date version of a compiler, and another that uses the latest, and run both at the same time.
    • Make your own packages that other people can install using a git repo address.
    • The package language can also describe a machine’s configuration; systemd services, default packages, user accounts, etc.
    • You can build and remotely deploy a machine config in one line.
    • You can cross compile a machine config for another cpu architecture, like ARM.
    • OS upgrades are atomic, and reversible. If it doesn’t work out, you can go back to the previous config.
    • No reason to ever reinstall. Recently upgraded a machine that had sat in a closet for 5 years to the newest release. Flawless upgrade.
    • Nixos boasts more packages than any other distro, over 100,000.

    There are certainly downsides - poor docs, confusing core language. Instructions for installing something on say debian will not work on nixos. I do think this style of package management is the future, if perhaps not this specific implementation. It can be a pain but its also super solid.