Re: chroot & cannot open shared object file
yuri.nefedov@gmail.com -> debian-russian@lists.debian.org @ Fri, 7 Nov 2014 14:03:26 +0300 (MSK):
>> AC> /opt/ghc/7.8.3/bin/ghc --version
>> AC> /opt/ghc/7.8.3/lib/ghc-7.8.3/bin/ghc: error while loading shared libraries: libHShaskeline-0.7.1.2-ghc7.8.3.so: cannot open shared object file: No such file or directory
>>
>> AC> при этом
>>
>> AC> ldd /opt/ghc/7.8.3/lib/ghc-7.8.3/bin/ghc|grep libHShaskeline-0.7.1.2-ghc7.8.3.so
>> AC> libHShaskeline-0.7.1.2-ghc7.8.3.so => /opt/ghc/7.8.3/lib/ghc-7.8.3/bin/../haskeline-0.7.1.2/libHShaskeline-0.7.1.2-ghc7.8.3.so (0x00007ff10b2c1000)
>>
>> Дополнительное расследование (запуск того и другого в окружении
>> LD_DEBUG=libs,files) показало, что при ldd ld.so смотрит на RPATH из
>> бинарника, а при запуске - нет. Опять же, гугл на эту тему ничего
>> вразумительного не рассказывает...
>>
y> Вообще то ldd это просто bash-скрипт вокруг ld-linux.so
y> Все что он делает сводится к конструкции типа
y> LD_TRACE_LOADED_OBJECTS=1 /lib/ld-linux.so.2 executable
y> Ситуация с RPATH еще больше запутывает дело. Как при запуске
y> проигнорировать rpath не очень понятно. Хотя... можно попробовать скажем
y> LD_TRACE_LOADED_OBJECTS=1 /lib/ld-linux.so.2 --inhibit-rpath "" executable
y> Возможно, приемлемым решением будет очистить rpath и управлять только
y> с помощью LD_LIBRARY_PATH.
y> В дебиане есть удобная программка chrpath
y> С помощью нее можно посмотреть (-l) и очистить (-d) rpath в executable.
y> Ю.
y> p.s. https://wiki.debian.org/RpathIssue
Это все я как раз нашел. Но я, в общем, довольно подробно написал,
почему мне хочется, чтобы RPATH работал.
Похоже, это, гм, особенность сисколла chroot(2). Вот только нифига
документации по этому поводу не нашлось...
Reply to: