There have been multiple accounts created with the sole purpose of posting advertisement posts or replies containing unsolicited advertising.

Accounts which solely post advertisements, or persistently post them may be terminated.

demesisx OP , (edited )
@demesisx@infosec.pub avatar

for a user that isn’t trying to maintain a dev environment, it’s a bloody lot of hassle

I agree but I prefer it to things like ansible for sure. I’m also happy to never have to run 400 apt install commands in a specific order lest I have to start again from scratch on a new system.

Another place I swear by it is in the declaration of drives. I used to have to use a bash script on boot that would update fstab every time I booted (I mount an NFS volume in my LAN as if it were native to my machine) then unmount it on shutdown. With nix, I haven’t had to invent solutions for that weird quirk (and any other quirks) since day one because I simply declared it like so:


<span style="color:#323232;">{
</span><span style="color:#323232;">  config,
</span><span style="color:#323232;">  lib,
</span><span style="color:#323232;">  pkgs,
</span><span style="color:#323232;">  inputs,
</span><span style="color:#323232;">  ...
</span><span style="color:#323232;">}: {
</span><span style="color:#323232;">  fileSystems."/boot" = {
</span><span style="color:#323232;">    device = "/dev/disk/by-uuid/bort";
</span><span style="color:#323232;">    fsType = "vfat";
</span><span style="color:#323232;">  };
</span><span style="color:#323232;">
</span><span style="color:#323232;">  fileSystems."/" = {
</span><span style="color:#323232;">    device = "/dev/disk/by-uuid/lisa";
</span><span style="color:#323232;">    fsType = "ext4";
</span><span style="color:#323232;">  };
</span><span style="color:#323232;">
</span><span style="color:#323232;">  swapDevices = [
</span><span style="color:#323232;">    {device = "/dev/disk/by-uuid/homer";}
</span><span style="color:#323232;">  ];
</span><span style="color:#323232;">
</span><span style="color:#323232;">  fileSystems."/home/mrskinner/video" = {
</span><span style="color:#323232;">    device = "192.168.8.130:/volume/video";
</span><span style="color:#323232;">    options = ["x-systemd.automount" "noauto"];
</span><span style="color:#323232;">    fsType = "nfs";
</span><span style="color:#323232;">  };
</span><span style="color:#323232;">
</span><span style="color:#323232;">  fileSystems."/home/mrskinner/Programming" = {
</span><span style="color:#323232;">    device = "192.168.8.130:/volume/Programming";
</span><span style="color:#323232;">    options = ["x-systemd.automount" "noauto"];
</span><span style="color:#323232;">    fsType = "nfs";
</span><span style="color:#323232;">  };
</span><span style="color:#323232;">
</span><span style="color:#323232;">  fileSystems."/home/mrskinner/music" = {
</span><span style="color:#323232;">    device = "192.168.8.130:/volume/music";
</span><span style="color:#323232;">    options = ["x-systemd.automount" "noauto"];
</span><span style="color:#323232;">    fsType = "nfs";
</span><span style="color:#323232;">  };
</span><span style="color:#323232;">}
</span>

IMO, where they really shine is in the context of declarative dev environments where the dependencies can be locked in place FOREVER if needed. I even use Nix to build OCI/Docker containers with their definitions declared right inside of my dev flake for situations where I have to work with people who hate the Nix way.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • [email protected]
  • random
  • lifeLocal
  • goranko
  • All magazines