I’m going to have to come back to Nix/NixOS in a bit. I tried setting it up as a baremetal OS but clearly didn’t have sufficient understanding of the Nix DSL to get it to do what I want. Following the instructions in the manual led to a functional system missing the network stack. I’ll probably wait until the official docs catch up as it appears that they are quite a bit behind. That and I’m not sure how I feel about a DSL for package management. I’d much rather use JSON or YAML, or even INI or TOML. Maybe if I were a LISP or Haskell guy.
So, after a few hours sunk there, I switched to Fedora Silverblue, which worked out of the box and added Incus via rpm-os-tree. Just need to get the UI setup and I can start moving through my distro list.
I’m going to have to come back to Nix/NixOS in a bit.
Use nix + home-manager first for sure. It’s far easier, and you can slowly get into it while making a list of bleeding edge packages.
I’ll probably wait until the official docs catch up as it appears that they are quite a bit behind
Skip them altogether when you’re starting out. I gave up on trying nix the first few times due to how bad they are. zero-to-nix.com is better for learning the basics of nix.
That and I’m not sure how I feel about a DSL for package management. I’d much rather use JSON or YAML, or even INI or TOML.
The closest you can get is home-manager with a list of packages in a json-like format. It’s really not practical to develop a declarative system without a programming language. A basic example would be variables, more advanced would be to write a wrapper that modifies the package so it automatically runs the required cli commands to use your dediated gpu and nixGL with specific packages (nvidia-run-mx nixVulkanNvidia-525.147.05 obs for example).
It’s sort of like IaC where you’ve got terraform (dsl), pulumi (various languages), and cloudformation (json/yaml). Can you guess which one is universally despised?
Maybe if I were a LISP or Haskell guy.
Then you’d use guix and a dsl made within an actual programming language (much better approach IMO).
I’m going to have to come back to Nix/NixOS in a bit. I tried setting it up as a baremetal OS but clearly didn’t have sufficient understanding of the Nix DSL to get it to do what I want. Following the instructions in the manual led to a functional system missing the network stack. I’ll probably wait until the official docs catch up as it appears that they are quite a bit behind. That and I’m not sure how I feel about a DSL for package management. I’d much rather use JSON or YAML, or even INI or TOML. Maybe if I were a LISP or Haskell guy.
So, after a few hours sunk there, I switched to Fedora Silverblue, which worked out of the box and added Incus via rpm-os-tree. Just need to get the UI setup and I can start moving through my distro list.
Use nix + home-manager first for sure. It’s far easier, and you can slowly get into it while making a list of bleeding edge packages.
Skip them altogether when you’re starting out. I gave up on trying nix the first few times due to how bad they are. zero-to-nix.com is better for learning the basics of nix.
The closest you can get is home-manager with a list of packages in a json-like format. It’s really not practical to develop a declarative system without a programming language. A basic example would be variables, more advanced would be to write a wrapper that modifies the package so it automatically runs the required cli commands to use your dediated gpu and nixGL with specific packages (
nvidia-run-mx nixVulkanNvidia-525.147.05 obs
for example).It’s sort of like IaC where you’ve got terraform (dsl), pulumi (various languages), and cloudformation (json/yaml). Can you guess which one is universally despised?
Then you’d use guix and a dsl made within an actual programming language (much better approach IMO).