<div style="font-family: Arial, sans-serif; font-size: 14px;"><p>Hey Paul,<br>
<br>
Nix(OS) is a strange, and almost exclusive system.<br>
<br>
I've installed NixOS on a machine a couple weeks back after a few times of trying. Admittedly, I needed some help from the robots to get my config behaving how I'd like it. I'm less familiar with Nix on Debian, but similar concepts should still apply.<br>
<br>Hope this helps.<br>
<br>
<code>nix-shell</code> is a testing environment for whatever package you "installed." Once you close the shell, it's gone.<br>
<br>
<code>nix-env</code> is the synaptic-style command equivalent, something like <code>apt get</code>. It's "discouraged" because Nix is all about an atomic, reproducible and declarative system.<br>
<br>
<code>nix profile</code> is good for using Nix on a system that's not NixOS. The way <code>profile</code> stores packages is a la Nix and makes builds reproducible. It's still an imperative operation though.<br>
<br>
To install a package, you'd do something like:<br>
<br>
<code>nix profile install nixpkgs#ripgrep</code><br>
<br>
(If you used home-manager as well, you could edit a local config file and populate <code>home.packages = [ ... ];</code> for new packages and rebuild. home-manager is to manage your application config + local dotfiles.)<br>
<br>
Last but not least is flakes. This is still experimental, but a flake is a snapshot of a package, with a flake.lock file, defining the inputs/outputs. It is reproducible by nature. To my knowledge, it's lacking good support outside of NixOS, but I could be wrong.<br>
<br>
BUT, good news is that <code>nix profile</code> stores packages as flakes, so you're getting the benefit there. This is the main reason that leads me to believe it's recommended over <code>nix-env</code>\u200b.<br>
<br>
If you decide to run full NixOS, the configuration for the system all happens within a configuration.nix (+ optional flake.nix). That is rebuilt and versioned on the system, allowing you to jump in between them.</p><p>My NixOS config is here:&nbsp;<span><a target="_blank" rel="noreferrer nofollow noopener" href="https://github.com/kingscott/kingscott.nix">https://github.com/kingscott/kingscott.nix</a></span>.<br>
<br>
Thanks,<br>
<br>
Scott<br>
<br>
<br>
<br>
<br>
<br>

</p><div style="font-family: Arial, sans-serif; font-size: 14px;" class="protonmail_signature_block">
    <div class="protonmail_signature_block-user">
        <div style="font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"><span style="font-family: Helvetica, sans-serif;">Scott King</span><br></div>
    </div>

            <div class="protonmail_signature_block-proton protonmail_signature_block-empty">

            </div>
</div>
<br>
<br>
On Tuesday, May 12th, 2026 at 12:06 PM, Paul Nijjar via kwlug-disc <a href="mailto:kwlug-disc@kwlug.org" rel="noreferrer nofollow noopener">kwlug-disc@kwlug.org</a> wrote:<p></p>
<p></p>
<blockquote>
<p>I know everybody loves Nix and NixOS but I find it so frustrating.<br>
The documentation is so misleading and I do not know the "right" way<br>
to do things, and then I do things the wrong way and suffer.</p>
<p>Here is what I did:</p>
<p>- I started with Debian Trixie<br>
- I followed the advice here to install <code>nix-setup-systemd</code> and add<br>
myself to the <code>nix-users</code> group and add the unstable channel using<br>
<code>nix-channel</code> : <a href="https://imranmustafa.net/nix-on-debian/" style="word-break: break-word;" target="_blank" rel="noreferrer nofollow noopener">https://imranmustafa.net/nix-on-debian/</a></p>
<p>- Then I looked for the version of the package I wanted to install:</p>
<p><a href="https://lazamar.co.uk/nix-versions/?package=newsboat&amp;version=2.21&amp;fullName=newsboat-2.21&amp;keyName=newsboat&amp;revision=3b05df1d13c1b315cecc610a2f3180f6669442f0&amp;channel=nixpkgs-unstable#instructions" style="word-break: break-word;" target="_blank" rel="noreferrer nofollow noopener">https://lazamar.co.uk/nix-versions/?package=newsboat&amp;version=2.21&amp;fullName=newsboat-2.21&amp;keyName=newsboat&amp;revision=3b05df1d13c1b315cecc610a2f3180f6669442f0&amp;channel=nixpkgs-unstable#instructions</a></p>
<p>On that page there are six different invocations for what I should do<br>
to install the package, and apparently they are all incorrect? The<br>
documentation I linked above says to use nix-env, but people on Reddit<br>
say that nix-env is bad and you should use nix profile, and then other<br>
people say that is wrong and you should use Home Manager and then<br>
people say that is too complicated etc etc etc.</p>
<p>Here is what I want:<br>
- Let me install this package, preferably by editing a text file and<br>
running a command to activate the text file.<br>
- It is fine for me to be the only one that runs this package<br>
- I want the package installed permanently, not in a transient way<br>
- If I am supposed to make a text file, tell me exactly what the<br>
filename is and where it goes[1], and tell me what should be in the<br>
file. If you point me to documentation that is fine, but if the<br>
documentation veers off into abstractoland immediately then that is<br>
not helpful.<br>
- If I need to run some other commands in order to set up the platform<br>
for that text file then that is okay; please tell me what commands I<br>
need.<br>
- Tell me what I need to run in order to get the package installed so<br>
that I am doing thing the Right Way and not going to be burned. If<br>
any of these ways is the Right Way that is fine, but tell me<br>
something that will work and not get me burned.</p>
<p>Can any of you Nix wizards help a stupid mortal out?</p>
<p>Am I the only one who finds the learning curve for this package<br>
manager stupidly high? I would have thought that with its popularity<br>
there would be clearer documentation.</p>
<p>[1] Don't do this:<br>
<a href="https://nix.dev/tutorials/first-steps/declarative-shell#a-basic-shell-nix-file" style="word-break: break-word;" target="_blank" rel="noreferrer nofollow noopener">https://nix.dev/tutorials/first-steps/declarative-shell#a-basic-shell-nix-file</a><br>
("create a file called <code>shell.nix</code>" . Okay. Where is this file<br>
supposed to live? Anywhere? Some specific folder?)</p>
<p>_______________________________________________<br>
kwlug-disc mailing list<br>
To unsubscribe, send an email to <a href="mailto:kwlug-disc-leave@kwlug.org" rel="noreferrer nofollow noopener">kwlug-disc-leave@kwlug.org</a><br>
with the subject "unsubscribe", or email<br>
<a href="mailto:kwlug-disc-owner@kwlug.org" rel="noreferrer nofollow noopener">kwlug-disc-owner@kwlug.org</a> to contact a human being.</p>
</blockquote></div>