The product of a chat with @QuazarOmega@lemy.lol

  • nickwitha_k (he/him)
    link
    48 months ago

    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.

    • @Shareni@programming.devOP
      link
      fedilink
      48 months ago

      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).