3 ms·
As far as i understand Nix, two users could have different glibc versions, but two programs of a single user?
by qznc 13y ago
As far as i understand Nix, two users could have different glibc versions, but two programs of a single user?
- chubot 13y agoTwo different versions will definitely live at different paths, since the path contains the content hash. The path doesn't have much to do with the user name; that's a separate issue.
- davorak 13y agoAs a single user I could run two programs utilizing different glibc versions.
- drdaeman 13y agoI don't see any problems here. libc is nothing special, it's just a library that (almost) every piece of software depends upon. Two different programs may depend on two different versions of it (/nix/libc-2.10-fdsfgs/lib/libc.so.6 and /nix/libc-2.13-fgsfds/lib/libc.so.6 or even /nix/uclibc-0.9.33.1-blahblah/lib/libc.so) just fine. The only requirement is that both libc versions must support running under the current kernel¹, as you can't have two kernels at the same time. However, it would be problematic if a single program (foo) would depend on a library (libfoo), which depends on another version of libc that foo does. I.e., dependency graph will be like foo->libc-x.xx, foo->libfoo->libc-y.yy. This would cause symbol conflict and AFAIK this can't be solved without either rebuilding either foo or libfoo or introducing some really nasty hacks to the ELF loader (ld-linux). ___ ¹) Google for "FATAL: kernel too old" error message to see the example of what I mean. There are patches to make newer libcs to run with relatively older kernels, though, it just requires building from source.