rel:: [[Operating Systems MOC|Operating Systems]] # NixOS **NixOS** is a [[Linux]] distribution built on top of the [[nix]] package manager. It uses declarative programming configuration and allows reliable system upgrades ## Reference - [NixOS Manual](https://nixos.org/manual/nixos/stable/) - [Nixpkgs Manual](https://nixos.org/manual/nixpkgs/stable/) - [Nixpkgs Search](https://search.nixos.org/packages) - [Community Wiki](https://nixos.wiki/) - [Cheat Sheet and comparison to Ubuntu](x-devonthink-item://7BBEEA9A-B9C2-47FE-BC0F-720D5F465438) - [dev env example from mitchellh](https://github.com/mitchellh/nixos-config) - [Nix journey part 0](https://tinkering.xyz/nix-docs/) - [zero-to-nix](https://zero-to-nix.com/start) - [how to patch a package source](https://drakerossman.com/blog/how-to-patch-a-package-source-on-nixos) ### Flakes > A flake is simply a source tree (such as a Git repository) containing a file named flake.nix that provides a standardized interface to Nix artifacts such as packages or NixOS modules. Flakes can have dependencies on other flakes, with a “lock file” pinning those dependencies to exact revisions to ensure reproducible evaluation. [source](https://www.tweag.io/blog/2020-05-25-flakes/) - [docs](https://nixos.wiki/wiki/Flakes) - [practical nix flakes](https://serokell.io/blog/practical-nix-flakes) - [Nix Based C++ Workflow From Scratch](x-devonthink-item://18CAE7A8-5617-47C2-BF13-A90B89E5238E) - [Quick C++ Project Setup](https://blog.galowicz.de/2023/01/16/cpp-qt-qml-nix-setup/) - [nix helpers](https://github.com/jlesquembre/clj-nix) for [[Clojure]] projects ### Debug Symbols - [wiki/Debug_Symbols](https://nixos.wiki/wiki/Debug_Symbols) - [issues/18530](https://github.com/NixOS/nixpkgs/issues/18530) - [SO question](https://unix.stackexchange.com/questions/432284/nixos-how-do-i-install-debug-symbols-into-my-nix-profile-from-a-custom-package) + home manager instructions