NixBSD

NixBSD is a new project that uses a port and package management system that came from NixOS on top of FreeBSD.
https://github.com/NixOS/nixpkgs is the official website.

There are mentions of a nixbsd in these forums, but this is not the same project. That meant Unix related operating systems including BSD, which is https://nixbsd.wordpress.com/.

congratulations for discover this, but lost me in "a purely-functional Linux distribution"
 
If i'm correct for NIX, all configuration is in lisp.
Question : What is the added value as compared to plain-FreeBSD?
The configuration is written in the Nix language

NixBSD would give the same advantage that NixOS does on the Linux world. You would have a declarative system where you can administrate and configure your system based on a strict formula. This is very good for reproducing it on other systems or having full transparency of how your system is configured or what you did. You also have extra advantages from this, like a packaging system that is immune to dependency hell, nix shells for using temporary packages, environment variables and environments you want to discard later, etc

Having a FreeBSD equivalent of NixOS is very good, though it will only cater to a niche, but a niche that really likes this kind of thing.
 
If i'm correct for NIX, all configuration is in lisp.
Question : What is the added value as compared to plain-FreeBSD?
I used Nixos for a while,
i think its own language rather lisp

someone described the nix language as being the love child of haskell and bash

The reason i stopped using nix is because the project doesnt update the documentation straight away
when they change how things work

So you have a config setup then it suddenly stops working
and then you have to look on the nix forum to try and find how to fix it

Trying to google for nixos information is a nightmare you get very few results

the issue is you might have software that has a bug and you have a simple fix that works on linux and unix

but you cant apply the fix to the nix version and you have to spend hours if not days
trying to find the nix fix for something that should take 5 minute to fix

also it doesnt follow the standard unix or linux file structure
it only has /bin/sh for scripts

which means you have to change all the shebangs in your non sh scripts like awk
or any other language because the standard file path for the binaries doesnt exist

nix has a main config file which defines how the system is set up
and you can specify a list of applications to install in that file

but then it has to rebuild the whole system every time you update an application

so you have to use another program called home-manager which has its own config files
to specify a list of applications to install

and then your home-manager config stops working because they have changed the syntax
so you then have to spend more time rewriting the config with the new syntax

at which point you begin to question why you are using it all

nix is basically a walled garden
 
Hey all, just here to say that for me a FreeBSDnix is highly desired. Perhaps FreeBSD devs can find a better way to implement the most important part of NixOS. As a daily user of NixOS for probably a year and a half I think having a programming language to evaluate in such a way as to configure your system including installations of packages is a very power thing to have.

As someone who is constantly tuning my computer system having a declarative system system means I can always go to some file and know exactly how a program should of been installed and how services should be setup. This is important because I often have many things to do and so I may tune one part, leave it alone for a very long time so when it needs changing (in the imperative system) I have to investigate how it was installed which is more or less complex depending no the program or service. Sometimes it feels like I have to do some forensics or archaeology to figure out how something was built. With NixOS I can completely forget a programs installation but come back at any time and read 1-2 files maybe and understand it like the day it was installed. To me that's the advantage that keeps me on NixOS and the rest are just emergent benefits. The organization you can do with a programming language evaluating lines and the ability to bring in code from other files (classic import) is extremely powerful whether or not you believe Nix did it well.

I've morphed my NixOS system to be very reminiscent of the FreeBSD ports system and it's been working so well an idea I'd like to see is honestly just copy the ports system somewhere and experiment with how just that directory could be the configuration.nix equivalent just spread out amongst the programs.

Here is what mine looks like and to me this is a good starting point perhaps to see how a freeBSD ports like structure (specifically how packages directories have default.nix describing a package's installation) could come out very organized. FYI the admin idea is just that for any nix command that installs something should go through admin which acts as a security bottle neck. in my system it's not actually implemented although I treat it like it is lol but that's a matter now of just setting up file write permissions.
 

Attachments

  • nix-organize.png
    nix-organize.png
    159.8 KB · Views: 30
Back
Top