[Nix-dev] upgrades and new packages

Marc Weber marco-oweber at gmx.de
Wed Feb 8 12:26:50 CET 2012


Excerpts from Arie Middelkoop's message of Wed Feb 08 10:48:20 +0100 2012:
> I would for example not know when I would need to apply things like 
> patchelf, and apparently it would be good to know about it. There might 
> be some explanation in the Nix(pkgs) manual, but you know the problem 
> with manuals...

Each executable / shared library (.so) has one important path and one
important path list:

  - interpreter (the linker linking in shared libraries or the like)

  - rpath (the path telling the linker where to look for shared libraries)
    LD_LIBRARY_PATH will be looked at first AFAIK

    Thus its "rpath" making it that easy that applications know about
    their own dependencies picking the "correct" glibc.so file etc.

    Without it (eg windows doesn't have it) its much harder to make
    applications find their dependencies. There you have to use
    strategies like copying .dll files into $out/bin or such.
    (I'm not a windows guru - so I may be wrong)

    So rpath does "magically" what setting
    PYTHONPATH,RUBYPATH,PERL5LIB,.. do for the scripting language (kind
    of)

Now if you install applications such as adobe reader both settings may
be wrong causing wired error messages because a) the linker is not found
and if you fix that path by patch-elf --set-interpreter you still get
the normal ".so file not found" traces when using strace.

My terms may not be totally correct - but you should get the idea what
this all is about. 

Marc Weber


More information about the nix-dev mailing list