[talk] Idea: NixBSD
Isaac (.ike) Levy
ike at blackskyresearch.net
Tue Aug 18 08:40:00 EDT 2015
Constructively, I'd like to address your thought from what I believe to be a general *BSD perspective,
> On Aug 14, 2015, at 11:24 AM, Malcolm Matalka <mmatalka at gmail.com> wrote:
> Hello everyone,
> I'd like to throw out an idea and get peoples reactions. This is not a
> concrete plan or anything I'm actively working on, more of a long term
> vision I'd love to see happen.
> A distribution of BSD that leverages the Nix package manager down to the
> OS configuration. Roughly a BSD version of NixOS.
The BSD's are not distros, that has been very important to the longevity and success of the *BSD's. A BSD is a full operating system, end to end.
Here is a great presentation on just that topic,
> The effort put into the ports is fantastic but the ports system is rigid
> in that supporting multiple versions of a single package requires a fair
> amount of effort, installing/removing ports is limited to the
> administrator of the machine, each port has to produce a unique set of
> output names, source based vs binary based might have a similar source
> but are distinct package systems.
> The Nix package manager is a purely functional package manager that
> supports source-based, and binary-based packages. It allows multiple
> versions of a port to be installed simultaneously and by non-admin
> users. It supports a binary cache on source-based ports. I believe
> that Nix packages are easier to create and maintain than ports, however
> that is clearly subjective.
> The goal would be to have a BSD distribution based on FreeBSD or OpenBSD
> that migrates the ports collection to nix and then eventually replaces
> the OS configuration with Nix as well.
Building your idea 'based on FreeBSD or OpenBSD', well, they are very different beasts- and again, are full, complete operating systems- not just a kernel. You could perhaps get one working release together based on either OS, but if you were to pick and choose parts of the OS base to use, you'd have a very hard time keeping your derived OS up to date with "upstream", to use Linux vocabulary.
Conversely, if you tweaked your idea just a tad- and worked to make the Nix package manager work well on any *BSD system, that is a far simpler proposition. No matter what you think of the pkgsrc project, they have achieved truly remarkable portability, and longevity.
> This puts all of the machine
> configuration in a single place, simplifying the configuration of the
> operating system.
It is worth noting here, that the *BSD's do not suffer this config confusion problem in the same way that many Linux distributions do. In the base OS, /etc and rc are simple, and 'in an single place'. BSD users and developers are typically much more proactive and involved with the various 3rd party software they use, and often focus on making *that* software less '/etc spammy'- instead of adding another layer of abstraction in the middle. This isn't a hard rule in the *BSD's, but it's certainly a world apart from any Linux distros- in implementation and mindset.
> This would be a lot of work, but I believe worth it in the long run. In
> the future I hope to have some time to add FreeBSD support back to Nix
> (it was not maintained and currently does not compile AFAIK) then
> getting ports to work under it.
Just getting Nix to run on say, FreeBSD or OpenBSD, would be a huge start.
I'm betting most of the problems are in bash-ism's in the build of it, I'd love to hear how this goes for you- and certainly feel free to ask questions about the *BSD end of things in here! (If people can't help, they certainly can know where to point you).
> I'm curious, what technical problems do people see with this idea? What
> social problems? IMO, Nix, while having issues, is vastly superior to
> any package manager I have used, but I'm not sure if it fixes a problem
> that anyone else in the BSD community believes exists.
That, I'm afraid, is indeed insightful- I'm not sure people believe these problems exist. Additionally, speaking for myself, the install is a bit of a non-starter from a security and best practices perspective,
"curl https://nixos.org/nix/install | sh"
A lot can certainly go wrong there.
Yet, who knows- this could finally be the light, clean, portable package manager that people could really use!
Good luck, and do tell us if you get it to build!
> talk mailing list
> talk at lists.nycbug.org
More information about the talk