Бувають іноді такі ситуації, коли треба запустити програму так, щоб вона підхопила якусь специфічну версію динамічних бібліотек замість тих, що стандартно встановлені у системі.
Уявіть, наприклад, що ви тестер і маєте перевірити роботу програми з усіма можливими версіями Qt від 4.4.3 аж до 4.7. Або вам просто хочеться у новенькій убунті вести розробку під якусь стародавню систему, у якій нічого більшого ніж 4.4.3 немає. У цьому пості я спробую зібрати докупи усю інформацію, яка знадобиться для вирішення таких ситуацій.
Коли бінарному файлу потрібно буде завантажити динамічну бібліотеку, то її шукатимуть у наступних місцях:
1) За значенням RPATH бібліотеки, у якій було знайдено залежність (якщо ця залежність у бібліотеці)
2) За значенням RPATH виконуваного файлу
3) у директоріях, перелічених у змінній оточення LD_LIBRARY_PATH
4) За значенням RUNPATH виконуваного файлу.
5) /etc/ld.so.cache — кеш бібліотек, сформований ldconfig
6) у стандартних директоріях, призначених для зберігання бібліотек (/lib та /usr/lib)
(
Читати далі
)