aboutsummaryrefslogtreecommitdiff
path: root/docs/posts/nixOS
diff options
context:
space:
mode:
Diffstat (limited to 'docs/posts/nixOS')
-rw-r--r--docs/posts/nixOS/index.html13
1 files changed, 8 insertions, 5 deletions
diff --git a/docs/posts/nixOS/index.html b/docs/posts/nixOS/index.html
index de6da96..90de43e 100644
--- a/docs/posts/nixOS/index.html
+++ b/docs/posts/nixOS/index.html
@@ -54,10 +54,10 @@
54<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> 54<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>
55<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> 55<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>
56<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> 56<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>
57<div class="sourceCode" id="cb2"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1"></a><span class="co">#! /usr/bin/env nix-shell</span></span> 57<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>
58<span id="cb2-2"><a href="#cb2-2"></a><span class="co">#! nix-shell -i bash -p eva pandoc esh</span></span> 58<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>
59<span id="cb2-3"><a href="#cb2-3"></a></span> 59<span id="cb2-3"><a href="#cb2-3" aria-hidden="true"></a></span>
60<span id="cb2-4"><a href="#cb2-4"></a><span class="co"># some bash magic ;)</span></span></code></pre></div> 60<span id="cb2-4"><a href="#cb2-4" aria-hidden="true"></a><span class="co"># some bash magic ;)</span></span></code></pre></div>
61<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> 61<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>
62<h3 id="impressions">Impressions</h3> 62<h3 id="impressions">Impressions</h3>
63<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> 63<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>
@@ -76,7 +76,10 @@
76 <p>I'm Akshay, I go by nerd or nerdypepper on the internet.</p> 76 <p>I'm Akshay, I go by nerd or nerdypepper on the internet.</p>
77 <p> 77 <p>
78 I am a compsci undergrad, Rust programmer and an enthusiastic Vimmer. 78 I am a compsci undergrad, Rust programmer and an enthusiastic Vimmer.
79 I write open-source stuff to pass time. I also design fonts: scientifica, curie. 79 I write <a href=https://git.peppe.rs>open-source stuff</a> to pass time.
80 I also design fonts:
81 <a href=https://git.peppe.rs/fonts/scientifica>scientifica</a>,
82 <a href=https://git.peppe.rs/fonts/curie>curie</a>.
80 </p> 83 </p>
81 <p>Send me a mail at [email protected] or a message at [email protected].</p> 84 <p>Send me a mail at [email protected] or a message at [email protected].</p>
82 </div> 85 </div>