Hacker News new | ask | show | jobs
by koalaman 1271 days ago
I really like nixos. I didn't get fluent with it, but I was learning and declarative environments is just so incredibly satisfying. I never had to do anything twice. I had to reinstall to change my HD layout and immediately I was back to the environment I had before. So happy. The language doesn't seem that bad to me either. Ultimately the biggest problem was package management. You'll eventually hit a dependency you need for work but doesn't exist or isn't kept up to date. Doing the work myself if just not something I have time for. I left the platform when I had to look at the Google Chrome update warning for two weeks without any updates. I get that these are all volunteers and I'm not mad. Until you have the marketshare that package owners are going to start ensuring your platform gets updates promptly you have no choice but provide best community effort. I just can't live in that kind of platform. For folks with motivation and lots of spare time to fix that problem with elbow grease, nixos is the best platform out there. I can't afford to wait on security updates for weeks to my browser and I don't have the time to maintain my own packages for common things I need fresh.
4 comments

With regards to your Chrome issue:

1. How often did you update your Nixpkgs channel/flake input/etc? 2. What branch (nixos-XX.XX or unstable) were you using? 3. Were you using Chromium or Google Chrome?

Chrom{e,ium} gets updated pretty quickly, but depending on a lot of factors, it may take time to make it into a channel. It should really never take 2 weeks though, which is why I ask the first question.

You can also always track HEAD (or even a bump PR!) as the other commenter mentioned, though you might not want to do this if you're not using Google Chrome, as you probably don't want to build the browser ;)

It's possible there was something wrong with my flake config as it was a cargo culted hack job. I tried updating using unstable and it made no difference. I looked at nixpkgs head for chromium and I didn't see any update PRs landed or incoming. I asked on the community chat and whoever was the knowledgeable person answering questions at the time did confirm that it looked out of date.

I'm sure I could have found a way if I persevered and ramped up properly. I just don't have that kind of time. Maybe after I retire I can pick up where I left off. I do suspect there's a big opportunity to build a shallower ramp onto nixos.

In addition to what the other replies mentioned, it's also possible to fall back to other methods like flatpak or a container (which programs like distrobox make very easy to set up and integrate with the host) in case a package in nixpkgs is either non-existant, outdated or broken and you don't have the knowledge or the time to create / modify the derivation yourself.

For instance, personally I have everything gaming related set up inside an Arch container so I can trivially follow upstream (or the master branch for Mesa) without any friction and it works wonderfully.

> In addition to what the other replies mentioned, it's also possible to fall back to other methods like flatpak or a container

That, or simply using pkgsrc.

It also provides versioning and decoupling from the system, but also has the benefits of working on any Unix and to be predictably updated. It's also far more KISS than any aforementioned solution.

The only real downside is the build time, as pkgsrc is more or less a managed federation of Makefiles. Installing software can take more time than would solutions based on binary packages, but it's totally worth it for the technical simplicity it brings to reproducible userlands.

> The only real downside is the build time, as pkgsrc is more or less a managed federation of Makefiles. Installing software can take more time than would solutions based on binary packages, but it's totally worth it for the technical simplicity it brings to reproducible userlands.

I always install Pkgsrc via Joyent's installers¹, and use `pkgin` to perform package installs. Most packagws thsn install from binaries. Seema to work pretty well!

I still mostly stick to Nix, but I highly recommend Pkgsrc over Homebrew/Linuxbrew. It plays nice with other package managers and is generally well-behaved. Not a bad escape hatch for Nix if you feel like you need one.

--

1: https://pkgsrc.joyent.com/

Arguably, Nixpkgs is also just a managed collection of (Nix) build recipes :) Except that due to mandatory reproducibility, it’s both more complicated and more amenable to caching of build artifacts (on Nix “substituters” ex “binary caches”).
It's pretty easy to track nixpkgs HEAD for chrome and stuff
> I left the platform when I had to look at the Google Chrome update warning for two weeks without any updates

You can follow -unstable for a select choice of package, that's what I'm doing e.g. for the TeamSpeak client.