NixOS notes

I found this article quite useful

https://catgirl.ai/log/nixos-experience/

I think Nix has unique approach towards OS and I kind of like it.

2 Likes

Can Nix replace docker? I really need find some time to try Nix …

this is a good project. They keep proposing their packager even on traditional distros, so perhaps its the packaging they want to change or the full distro experience its not clear. But certainly I like a lot of things about the project and its goals.

Interesting article about NixOS on ARM and some of the challenges:

And it’s way easier with bootloaders. Generally they have a very limited scope! Think about how many different GRUBs there are for your x86_64 systems. There’s about two! One for UEFI, one for legacy boot! systemd-boot only exists in one flavour!

Now that’s much easier! They use generally stable and agreed upon protocols (e.g. UEFI), and are universal for an architecture.

Now think about how many SBCs and ARM systems you know. It’s possible you have to pick that number and assume there’s that many different schemes for platform firmwares for those devices. Maybe more, maybe fewer.

1 Like

Interesting article:

A quote from the article:

What’s the most interesting tool or tech you’re currently playing around with?

Nix / NixOS. We’ve ended up using it at Fission as well, even though this was more a side thing for me. Some of the other engineers also got interested in it. and so we’ve just adopted it now.

It’s essentially a declarative package manager, but it also plugs into build tools and scripts and ops. It is, by far, the best of that suite of tools I’ve ever used. I use it to manage my Mac, and run a NixOS server.

I can’t imagine going back to ad-hoc dotfiles and conflicting dynamic libraries and changing versions of Node for different packages. Now, I’m in my Nix shell and everything works, I don’t have to mess around with anything. The main downside is the documentation isn’t quite there yet, but once you get over that hurdle, it’s really lovely.

https://blog.wesleyac.com/posts/the-curse-of-nixos

this is a good article, I also think that nixOS has better approach, the problem with nix language is similar to what bitbake language is to OE, unstructured and complex, these languages grew over time and follow no real programming language design principles strictly speaking and become the biggest hurdle for adoption. The analogy of language package management systems to nix is a good one I think.

some nice tutotials

they are really apt for me where I am trying to play with NixOS as daily driver for desktop

Set up Nix on my Arch system to experiment with using it to set up build environments and generate containers. I tried the Arch nix package, but eventually gave up as it seems there are too many environment things missing that it does not set up. Ran the standard install process from the Nix web site, enabled nix-daemon, rebooted, and it seems to be working:

[cbrake@ceres ~]$ nix-shell -p hello

[nix-shell:~]$ hello
Hello, world!

[nix-shell:~]$ 
exit
[cbrake@ceres ~]$ nix-shell -p influxdb2

[nix-shell:~]$ influx
influx   influxd  

[nix-shell:~]$ influxd version
InfluxDB 2.4.0 (git: v2.4.0) build_date: 2022-10-04T15:34:44Z

[nix-shell:~]$ 

From what I’ve been reading is that Nix is very efficient as generating containers as it only includes what is needed – there is no base “OS” needed – its all dependency based. This is neat as most container build processes (Dockerfile, etc) require you to use the package manager in the base image to install stuff.

Nixos newsletter it a git repo and md files

one thing I do like about nix is it won’t do anything if you have a typo in your config – kind of like type-checking for config files …