Программа, которую я использую, может только быть установлена с пользовательским установщиком (Бесплатно распространяемая Демонстрация IDA). Я установил его в своем домашнем dir, все это хорошо работает.
Теперь я заметил при проверке программы с ldd: это поставлется со своими собственными библиотеками Qt, который является местами как совместно использованными библиотеками в его dir установки (так тот же каталог, его основной исполняемый файл находится в, не/usr/lib или подобный).
$ ldd ida64
linux-vdso.so.1 => (0x00007ffec5fb9000)
libida64.so => /home/asdf/idafree-7.0/./libida64.so
libQt5PrintSupport.so.5 => /home/asdf/idafree-7.0/./libQt5PrintSupport.so.5
libQt5Widgets.so.5 => /home/asdf/idafree-7.0/./libQt5Widgets.so.5
....
(установите dir =/home/asdf/idafree-7.0/),
Теперь интересно: Как это делает это? Я выполняю программу непосредственно без любого волшебства LD_LIB_PATH.
Простое объяснение, как выполнить исполняемый файл, требующий уникального LD_LIBRARY_PATH, например, пути к, освобождает в текущем каталоге/:
Короткий: export LD_LIBRARY_PATH=.
где точка (.) означает 'текущий каталог'
Обычно также системный LD_LIBRARY_PATH будет (иметь к) быть включенным: export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
"Трудно кодирование", например. ida64
: Функция в исполняемом файле, который будет выполнен сначала, устанавливает уникальный LD_LIBRARY_PATH.... Другой пример: firefox
.