From 938c4648b102975cd73f82457544ec7dc0318bfa Mon Sep 17 00:00:00 2001 From: Akshay Date: Mon, 4 Oct 2021 08:10:24 +0530 Subject: new art: b8 --- docs/posts/nixOS/index.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'docs/posts/nixOS/index.html') diff --git a/docs/posts/nixOS/index.html b/docs/posts/nixOS/index.html index 3e012f8..75be58f 100644 --- a/docs/posts/nixOS/index.html +++ b/docs/posts/nixOS/index.html @@ -58,10 +58,10 @@

Builds may be generated by specifying a default.nix file, and running nix-build. Conventional package managers require you to specify a dependency list, but there is no guarantee that this list is complete. The package will build on your machine even if you forget a dependency. However, with Nix, packages are installed to /nix/store, and not global paths such as /usr/bin/..., if your project builds, it means you have included every last one.

Issues on most my projects have been “unable to build because libxcb is missing”, or “this version of openssl is too old”. Tools like cargo and pip are poor package managers. While they can guarantee that Rust or Python dependencies are met, they make assumptions about the target system.

For example, this website is now built using Nix, anyone using Nix may simply, clone the repository and run ./generate.sh, and it would just work, while keeping your global namespace clean™:

-
#! /usr/bin/env nix-shell
-#! nix-shell -i bash -p eva pandoc esh
-
-# some bash magic ;)
+
#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p eva pandoc esh
+
+# some bash magic ;)

Dependencies are included with the -p flag, the shell script is executed with an interpreter, specified with the -i flag.

Impressions

NixOS is by no means, simple. As a newcomer, using Nix was not easy, heck, I had to learn a purely functional, lazy language to just build programs. There is a lot to be desired on the tooling front as well. A well fleshed out LSP plugin would be nice (rnix-lsp looks promising).

-- cgit v1.2.3