| ▲ | bikelang 5 hours ago |
| I don’t any experience with Nix - but how does it handle software which runs its own updating processes outside the package manager? Specifically thinking about software like Discord, Slack, Docker Desktop, Jetbrains Toolbox, etc. Is the Nix-ism to just reject using such software? |
|
| ▲ | Macha 5 hours ago | parent | next [-] |
| So Discord, and quite a lot of software like this has actually two layers of updates. There's updates of the web page (which is basically writing a bunch of JS to the home directory) which NixOS does nothing to prevent, and then there's updates of the host program (i.e. Electron) which NixOS disables. Jetbrains Toolbox is in a sort of different category with tools like Rustup, since it's a package manager of its own. If you manage your IDEs with Toolbox, then your IDE versions are "outside Nix" and not managed by Nix. It's just packaged into its own pretend FHS environment and then doesn't know anything about it being on Nix. That said, updates of Toolbox itself will need to happen through your package manager. As a last comment, why run Docker Desktop on Linux at all? Like I understand on Windows and Mac - docker is inherently tied to Linux so the Windows/Mac apps abstract away the fact that it's running a VM and doing a bunch of port mapping and filesystem mounting under the hood so you can pretend it's not running on a VM, but on Linux I've always just installed docker straight onto the host. |
| |
| ▲ | k_roy 4 hours ago | parent | next [-] | | There’s more to Docker Desktop than just “oh it’s just docker underneath” 1. Unified experience across Windows, Mac, Linux 2. The security posture is much stronger by default. Many people, who would probably be considered the “target audience” for Docker Desktop, don’t bother to make docker-ce rootless, or don’t use podman, so running it in a VM is better, though admittedly often annoying. 3. Not everybody is a CLI warrior. Docker Desktop gives a decent GUI, ways to monitor and control containers visually, and even deploy kubernetes with a single click. | |
| ▲ | bikelang 5 hours ago | parent | prev [-] | | This is a really helpful explanation - thank you! Regarding Docker Desktop on Linux - yeah definitely not strictly necessary. Sometimes it’s just convenient to have a UI instead of fumbling around trying to remember some cli incantation to check for dangling volumes or what-have-you. I think ideally I want to move to Podman anyways - but I’m using pop_os as my dev distro at the moment and am stuck on an older version which doesn’t have their native `podman compose` implementation yet |
|
|
| ▲ | uncletaco 5 hours ago | parent | prev | next [-] |
| No there’s a nerd who will obsessively submit the latest version of any popular software that does that to nixpkgs. Or suggest you use the flatpak. |
| |
| ▲ | SOLAR_FIELDS 5 hours ago | parent [-] | | Except if you go look at nixpkgs half of the technologies grandparent listed are either missing entirely or in a hilariously broken state. The true answer is that there is just some software that is antithetical to the philosophy of nix. It’s not necessarily nix’s fault that this is the case, but their purism towards resisting opaque binary blobs going into the store reflects on the actual state of what’s available in nix. You need some impure, nonreproducible way of managing that software. So on nix Darwin I let these opaque binary blobs manage themselves via homebrew and use nix for every other case possible |
|
|
| ▲ | whytevuhuni 5 hours ago | parent | prev | next [-] |
| That's not much different than other distros, because the way auto-update usually works, is it can't use root permissions or the system package manager (in any distro), so it has to install the newer version in $HOME. Once the update is installed, the system package becomes a trampoline to that. I tried Discord, and this one seems to download some updates on first run, but the version sticks to the one from the system (0.0.127, latest is 0.0.129). So I assume it just doesn't update, or it tries to and fails. |
|
| ▲ | hombre_fatal 4 hours ago | parent | prev | next [-] |
| For a personal desktop environment, I just install them normally when there's no up to date nixified option. For some things I've vibe-coded a nix module on github that uses a scheduled github action to check for underlying app updates and then it generates a new hash and tags a release. I've done that for claude code and cursor, which is also an opportunity to let me manage their config files from my nix config. |
| |
| ▲ | snailmailman 4 hours ago | parent [-] | | I run NixOS and the number of times ive been able to install something 'normally' (not via nixpkgs/flake) is approximately zero. You cant go to a website and download a binary and just run it. Almost every program references a shared library and wont be able to find it. Nixpkgs is very complete in my experience, and in the instances where its not, someone usually has made a flake. The only times ive had to custom-make a flake were extremely new programs, or extremely old ones. Often the newer programs had PRs waiting on nixpkgs anyway, and were only a few days away from building properly in nixos-unstable. | | |
| ▲ | hombre_fatal 4 hours ago | parent | next [-] | | They said Nix, so I was thinking about macOS + nix-darwin when I wrote that. You're right. When I tried using NixOS as my main desktop experience for a few months, I ended up with a custom derivation for various apps I used. That's probably why I made the claude code and cursor modules in the first place. But I'm also remembering I made my own keepassxc module because keepassxc wants to be able to write to its config file, but I also want to configure it from nix, so I had to make my module use an activation-time script to merge nix config into the keepassxc config file. I lost interest in NixOS for day to day personal computing, though vibe-coding modules like that wasn't as big of a dealbreaker as there being almost zero laptops that compete with a Macbook. The other pain is Linux desktop environment stuff in general like dealing with interactions between a Steam game, wayland, and wayland-satellite. Though NixOS helped there since it was easy for an AI agent to investigate the issue, inspect the nix config, and make a targeted, commented patch that shows up in git. | |
| ▲ | gallexme 3 hours ago | parent | prev [-] | | Usually u can run almost any binary by setting up once a fhs. Or using steam-run And there's also nix alien and similar tools as alternative But indeed usually you end up using patchelf , tell the inputs of a binary n just make a regular nix package from it |
|
|
|
| ▲ | MuffinFlavored 5 hours ago | parent | prev [-] |
| really good question. right now I have bought into the Nix koolaid a bit. I have NixOS Linux machines and then nix-darwin on my Mac. I use Nix to install Brew and then Brew to manage casks for things like Chrome what I'm sure updates itself. So the "flake.lock" probably isn't super accurate for the apps you described. |