diff --git a/README.adoc b/README.adoc index cfe56d1c..c9484e77 100644 --- a/README.adoc +++ b/README.adoc @@ -212,20 +212,46 @@ However, it doesn't roll off the tongue. [qanda] Hello! I'm new to Nix and NixOS, where should I start?:: Oh no, you've seen the multiple configurations from other systems, didn't you? ++ +-- I hope you're ready for some time understanding because the learning curve is steeper than the link:https://en.wikipedia.org/wiki/Troll_Wall[Troll Wall]. I've written link:https://foo-dogsquared.github.io/blog/posts/moving-into-nixos/[a blog post regarding my experience with Nix] with a bunch of links for getting started. Fortunately footnote:[Or unfortunately from a different perspective.], it is mostly the same experience now that I've revisited it. (That said, Nix Pills is getting better!) -+ + For a more practical start, I recommend to look into several configurations to see the general gist of configuration with Nix. Here's a few I personally dug into: -+ + * {devos_link} * https://github.com/hlissner/dotfiles * https://github.com/thiagokokada/nix-configs +-- + +Should I use NixOS?:: +I feel like link:https://github.com/hlissner/dotfiles/blob/5ea10e188354d096566a364016fbd28ec38dbe07/README.md#frequently-asked-questions[this answer is enough] but I'll give my take on it regardless. ++ +-- +If you are looking forward to debugging your configuration which consists of finding multiple sources from the manuals from the website, reading the source code from the appropriate point in link:https://github.com/NixOS/nixpkgs/[nixpkgs], and repeatedly testing your NixOS configurations with each change then this is for you. + +Entering the Nix ecosystem at the beginning requires high level of engagement to learn the ropes even if your only intention is to create a basic reproducible operating system ala-Ansible. + +* You'll encounter vague and unique errors as the likes of NixOS is a unique world (the infamous infinite recursion, anyone?). +* You'll appreciate technical writers as the documentation department is lacking. +* You'll read outdated unofficial guides, resources, and the source code as you dive deeper into Nix. +* You'll get used to the unfortunate UX that is the toolings around Nix (even the revised Nix CLI has its problems). + +There's nothing better with NixOS than the (un)official NixOS experience™. + +Once you passed the initial curve and the difficulties that come with NixOS, the benefits are immense. + +* You can make use of Nix's large ecosystem of packages from nixpkgs, which contains not only a large number of applications, but also decent support as a universal build system for projects made with different tools (i.e., programming languages, even other more popular build systems). +* It is easier to distribute and verify your builds as Nix also has toolings available for those purposes. footnote:[Though, other packaging formats also has those but for Nix, reproducibility is one of the focus.] + +If you intend to use NixOS, I recommend to start small and install Nix on a non-NixOS distro and use it as a way to create reproducible development environment, be familiar to its build process (I recommend reading link:https://nixos.org/guides/nix-pills[Nix Pills] to get started), get intimate with systemd, and then test NixOS in a virtual machine. +-- Any requirements for this setup?:: -You only need Nix 2.4 installed with the experimental features for Nix command and flakes enabled (i.e., `experimental-features = nix-command flakes`). +You only need Nix 2.6 installed with the experimental features for Nix command and flakes enabled (i.e., `experimental-features = nix-command flakes`). Hey! I have an error something like `/nix/${HASH}-nmd/` from my installation. Why it doesn't work?:: This error seems to be related to home-manager. @@ -237,14 +263,16 @@ link:https://youtu.be/iWJKZK_1l88[I LIKE IT!] There are still some hiccups like the strict tie-in to Git which leads to strange experience like having to add untracked files just to be recognized. However, this feature is still in the works so no surprise there. + +-- With that said, it is workable to be a daily part of the NixOS experience especially with the benefits of Nix flakes. -+ + * More user-friendly compared to Nix channels. * Just one reference file to know what is being exported from a project. * Unification with commonly-agreed schemas. -+ + This feature somewhat helped me understand more about the Nix language, oddly. I guess those lightbulb moments can come from random places. +-- Is this based from link:{devos_link}[devos]?:: Yes but I've created this from scratch.