Hacker News new | ask | show | jobs
by aszen 1962 days ago
Another solid alternative is to install the nix package manager[0] and get access to thousands of packages.

I have stopped installing stuff from apt and thankfully my system never breaks now.

[0] https://github.com/NixOS/nixpkgs

2 comments

I don't understand. I am sure the nix repository is quite large, as are Debian's and Fedora's ones. But how would nix help you mixing packages from different repositories, which is Bedrock Linux use case?
you (rightfully) don't understand because nix doesn't really fit in this discussion. actually, i'd say that nix is off-topic here.

nix is a package manager, that is going to install packages in its own way.

the discussion here is about bedrock linux, that answers a specific question: what if, for any reason, you need packages from two (or more?) specific, very different distros?

what if you need packages from BOTH ubuntu and rhel?

to that question, the answer is not "install nix".

which is really bad because i see the value in nix, it's a very nice system, but nix fanboys are getting really annoying with mentioning nix in any discussion where package management is even tangentially related. it kinda reminds me of that old video about mongodb being webscale.

It solves a specific instance of the problem of needing packages from two distros, which is a common instance of that problem: wanting a stable base set of packages on your system with the ability to use some newer, up to date ones.

Nix is highly relevant because it solves that case: you can run Nix on any stable distribution like Debian, and the Nix package repository contains a very large amount of mostly up-to-date software, similar to the Arch+AUR repositories.

Another problem it solves more generally is getting access to a large repository of maintained packages from a base system that only has a small repository, even if those packages are up-to-date.

Both of these are reasons you might use Bedrock, so it doesn't seem off-topic.

The only reason you would want packages from different distro's is if they have a different version.

With nix you can install packages with different versions, you can also install old packages by going back in nixpkgs history and building the package.

Nix being source based means you can install any software package as long as you have access to it's source.

Ofcourse some of this is possible with other systems too but the nix ecosystem makes it far easier to build packages in different languages.

In short nix can treat the disease (missing different versions of packages in distros) instead of treating the symptoms (installing packages from different distros)

You can install nix on top of any Linux distribution.
have been running debian sid on all my dev machines since ~7 years and not once had an issue. sure sometimes you need to diff a config file during a dist-upgrade but nothing every broke. ymmv. all my WM/DE sway/i3 gui stuff is self-compiled and so I get to see issues, dependencies and problems at compile time on my machine which I report upstream. It forces me in some rare cases dig until I understand and solve the problem. On the upside I know my tools really well down to every log entry that should or should not be there. Solving things becomes muscle memory (works better with a minimalist approach similar to the suckless philosophy). There is also a performance benefit of getting to use better CFLAGS such as `-mtune=native -march=native` or other hardening not available with packages. Once a day there is a cronjob polling git status for changes of relevant packages so I won't run out of date critically unpatched code. (oh and the great thing is by doing this often you also can follow the patches/diffs and quickly understand what is happening)

being lazy I've never considered the NixOS packing. it's a steep learning curve and also "old dog, new tricks". I'm sure it's awesome to use professionally but unless I see a commercial reason to use and apply it on the job, I won't bother (not because of lazy but because of many other competing things I want to do).