Yesterday, I ran into an issue where two versions of Qt couldn’t run at the same time. This problem has been mentioned by a few people before, with no solutions offered for users. In my case, I was trying to start a nix shell with the rpi-imager. Thankfully, I was able to use the cli, but this was still unexpected and I was under the impression that nix was supposed to fix problems like this.
That being said, the statement that symbol conflicts do not exist on other distros is plainly not true.
I have never claimed such a thing.
Classical distros have exactly one instance of a library ABI’s .so in most cases which is usually the only place where any given symbol is defined.
You could technically provoke a symbol conflict using LD_PRELOAD and the like but it’s not something you commonly run into because package upgrades always replace the previous version entirely.
You could technically have multiple conflicting sos on classical distros too by prefixing a more detailed version but you don’t; doing such things kinda what differentiates Nix from classical package management.
This QT issue in particular was an impurity (working outside of Nix’ pure model; not as intended) caused by “installing” qt libraries into your environment imperatively (which isn’t something you should do anyways) that was solved a couple years ago.
If these these applications can coexist in other distros, and they can only have one version of Qt, then that means packages in NixOS are overly strict about library versions. I don’t really care what the underlying reason is for this issue, I just know it’s an issue exclusive to NixOS that frustrates me.
Yesterday, I ran into an issue where two versions of Qt couldn’t run at the same time. This problem has been mentioned by a few people before, with no solutions offered for users. In my case, I was trying to start a nix shell with the rpi-imager. Thankfully, I was able to use the cli, but this was still unexpected and I was under the impression that nix was supposed to fix problems like this.
deleted by creator
Why is this only an issue on NixOS, then? I can’t find a single instance of this issue on another distro.
Here is the relevant github issue: https://github.com/NixOS/nixpkgs/issues/37864
Because other distros usually can’t have multiple versions of the same library to begin with.
deleted by creator
I have never claimed such a thing.
Classical distros have exactly one instance of a library ABI’s .so in most cases which is usually the only place where any given symbol is defined.
You could technically provoke a symbol conflict using LD_PRELOAD and the like but it’s not something you commonly run into because package upgrades always replace the previous version entirely.
You could technically have multiple conflicting
so
s on classical distros too by prefixing a more detailed version but you don’t; doing such things kinda what differentiates Nix from classical package management.This QT issue in particular was an impurity (working outside of Nix’ pure model; not as intended) caused by “installing” qt libraries into your environment imperatively (which isn’t something you should do anyways) that was solved a couple years ago.
deleted by creator
If these these applications can coexist in other distros, and they can only have one version of Qt, then that means packages in NixOS are overly strict about library versions. I don’t really care what the underlying reason is for this issue, I just know it’s an issue exclusive to NixOS that frustrates me.
No, the actual issue was an impurity (not working in Nix’ pure model). Impurity is a bug; it was fixed years ago.