4 ms·
> Another big thing, Nix has Flakes, which make it trivially to turn all your Git repositories into Nix packages. I have no doubt that this is true, but I stil
by jyrkesh 4y ago
> Another big thing, Nix has Flakes, which make it trivially to turn all your Git repositories into Nix packages.
I have no doubt that this is true, but I still feel dumb about it. I run a Plex server (among a few other workloads) on a NixOS box, and just figuring out how to update the Plex binaries off of the official master branch was a multi-hour back-and-forth endeavor between StackOverflow suggestions and compiler errors.
I really do love Nix though. And once I got it working I felt a LITTLE bit smarter, AND it's worked flawlessly for months.
- benreesman 4y agoI’ve said this elsewhere in the thread and might do so again but it bears repeating: use flakes. At first they seem like this weird semi-supported thing, but eventually you realize that Nix is badly broken without them. Flakes aren’t “experimental”. “Experimental” is what happens to your sanity without them.
- yjftsjthsd-h 4y ago> Flakes aren’t “experimental”. “Experimental” is what happens to your sanity without them. Okay, I like flakes, I use flakes, I enable flakes without much worry. But. They literally are an experimental feature, and they are still enabled by setting "experimental-features = nix-command flakes" in nix's config.
- benreesman 4y agoI think I was maybe too casual with my language. Flakes are clearly marked experimental in the documentation. But they were a no-brainer a year ago, they’re always “a few months” from being official, they map directly onto users’ intuition around lock files, they enable principled composition of shit that doesn’t live in nixpkgs, the list goes on. Outside of some (hypothetical to me) edge cases, not using them is masochism. Flakes have a standard library (“flake-utils”) and and a pimped out version (“flake-utils-plus”). Making it a weird gymnastics trick for a novice user to even access them is the kind of shit GHC devs say, “no, that’s too user-hostile even for us”. Use flakes.
- ethbr0 4y ago> a multi-hour back-and-forth endeavor between StackOverflow suggestions and compiler errors Sounds like the authentic 90s linux package experience! (except with 's/StackOverflow/mailing list/')
- rowanG077 4y agoHow do you do it? I literally remove the flake from my nix profile and re-add it with a specific commit hash. I had troubles that just specifying master didn't update to the current master.
- jyrkesh 4y agoI cheated and did a stateful thing (because I couldn't figure out flakes): sudo nix-channel --add https://nixos.org/channels/nixos-unstable https://nixos.org/channels/nixos-unstable nixos-unstable and then I added this blurb to my Nix config: nixpkgs.config = { allowUnfree = true; packageOverrides = pkgs: { unstable = import <nixos-unstable> { config = config.nixpkgs.config; }; }; };