Меняем RPATH

Что такое RPATH? Wikipedia:

rpath is a term in programming which refers to a run-time search path hard-coded in an executable file or library, used during dynamic linking to find the libraries the executable or library requires.

Иными словами это жёстко зашито в заголовке бинарника. Можно попробовать поменять в момент запуска:

LD_LIBRARY_PATH=/var/other myprog &

Но это не всегда возможно и не всегда работает. Для постоянного изменения существует специальные утилиты, которые правят сам бинарник.

FreeBSD

В портах есть devel/chrpath

OpenBSD

Можно скачать исходники и скомпиллировать

Linux

Доступен во многих репозиториях пакет chrpath

Nowadays on Linux you should specify a RUNPATH, not a RPATH. The 
RUNPATH allows LD_LIBRARY overrides to search paths. It is recommended 
by the folks who write the runtime loaders. The options you need are: 

  * -Wl,-rpath, 	 (enables RPATH) 
  * -Wl,--enable-new-dtags (enables RUNPATH)

Solaris

Тут целый набор команд для просмотра, правки не только rpath, но и многих других секций:

elfdump, elfedit, elffile, elfsign, elfwrap

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *