Это не дубликат, потому что имеет дело с особенностью, которую я заметил, когда использую /etc/ld.so.conf.
Чтобы получить пути, по которым динамический компоновщик ищет библиотеки, я запускаю команду ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g". Когда /etc/ld.so.confнет путей, перечисленных в нем. Вывод предыдущей команды
/lib
/usr/lib
Я понял, что он ищет /libсначала, а потом /usr/lib. Когда я добавляю новый путь, такой как /usr/local/lib, /etc/ld.so.confи затем переделываю /etc/ld.so.cache, вывод из ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"становится
/usr/local/lib
/lib
/usr/lib
Я нахожу это странным, потому что, если я прав, что порядок поиска в перечисленных каталогах сверху вниз, то дополнительные каталоги ищутся до /libи /usr/lib. То, что дополнительные каталоги ищутся до доверенных каталогов, само по себе не странно, но когда /libпоиск выполняется до /usr/libэтого, это странно, потому что /bin& /sbinищутся после /usr/bin& /usr/sbinin PATH.
Даже если пути, перечисленные в списке, ldconfig -v | grep -Ev "^"$'\t' | sed "s/:$//g"ищутся снизу вверх, это все равно будет искаженный порядок, потому что дополнительные каталоги будут искать после доверенных, а /libпотом искать /usr/lib.
Итак, каков порядок ld.soпоиска путей для библиотек? Почему /libищется раньше /usr/lib? Если это не так, то зачем искать дополнительные каталоги /lib?