aboutsummaryrefslogtreecommitdiff
path: root/docs/posts/nixOS/index.html
diff options
context:
space:
mode:
authorAkshay <[email protected]>2021-10-04 03:40:24 +0100
committerAkshay <[email protected]>2021-10-04 03:40:24 +0100
commit938c4648b102975cd73f82457544ec7dc0318bfa (patch)
treed53e21bc399e3d697b04a92664a84f496719981b /docs/posts/nixOS/index.html
parent4f94de29124cc862175c46db8f1c3771226ff0d6 (diff)
new art: b8
Diffstat (limited to 'docs/posts/nixOS/index.html')
-rw-r--r--docs/posts/nixOS/index.html8
1 files changed, 4 insertions, 4 deletions
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 @@
58<p>Builds may be generated by specifying a <code>default.nix</code> file, and running <code>nix-build</code>. 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 <code>/nix/store</code>, and not global paths such as <code>/usr/bin/...</code>, if your project builds, it means you have included every last one.</p> 58<p>Builds may be generated by specifying a <code>default.nix</code> file, and running <code>nix-build</code>. 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 <code>/nix/store</code>, and not global paths such as <code>/usr/bin/...</code>, if your project builds, it means you have included every last one.</p>
59<p>Issues on most my projects have been “unable to build because <code>libxcb</code> is missing”, or “this version of <code>openssl</code> is too old”. Tools like <code>cargo</code> and <code>pip</code> are poor package managers. While they <em>can</em> guarantee that Rust or Python dependencies are met, they make assumptions about the target system.</p> 59<p>Issues on most my projects have been “unable to build because <code>libxcb</code> is missing”, or “this version of <code>openssl</code> is too old”. Tools like <code>cargo</code> and <code>pip</code> are poor package managers. While they <em>can</em> guarantee that Rust or Python dependencies are met, they make assumptions about the target system.</p>
60<p>For example, <a href="https://github.com/nerdypepper/site">this website</a> is now built using Nix, anyone using Nix may simply, clone the repository and run <code>./generate.sh</code>, and it would <em>just work</em>, while keeping your global namespace clean™:</p> 60<p>For example, <a href="https://github.com/nerdypepper/site">this website</a> is now built using Nix, anyone using Nix may simply, clone the repository and run <code>./generate.sh</code>, and it would <em>just work</em>, while keeping your global namespace clean™:</p>
61<div class="sourceCode" id="cb2"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true"></a><span class="co">#! /usr/bin/env nix-shell</span></span> 61<div class="sourceCode" id="cb2"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="co">#! /usr/bin/env nix-shell</span></span>
62<span id="cb2-2"><a href="#cb2-2" aria-hidden="true"></a><span class="co">#! nix-shell -i bash -p eva pandoc esh</span></span> 62<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="co">#! nix-shell -i bash -p eva pandoc esh</span></span>
63<span id="cb2-3"><a href="#cb2-3" aria-hidden="true"></a></span> 63<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a></span>
64<span id="cb2-4"><a href="#cb2-4" aria-hidden="true"></a><span class="co"># some bash magic ;)</span></span></code></pre></div> 64<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a><span class="co"># some bash magic ;)</span></span></code></pre></div>
65<p>Dependencies are included with the <code>-p</code> flag, the shell script is executed with an interpreter, specified with the <code>-i</code> flag.</p> 65<p>Dependencies are included with the <code>-p</code> flag, the shell script is executed with an interpreter, specified with the <code>-i</code> flag.</p>
66<h3 id="impressions">Impressions</h3> 66<h3 id="impressions">Impressions</h3>
67<p>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 (<a href="https://github.com/nix-community/rnix-lsp">rnix-lsp looks promising</a>).</p> 67<p>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 (<a href="https://github.com/nix-community/rnix-lsp">rnix-lsp looks promising</a>).</p>