Ответ 1
ldconfig просматривает все общие объекты, которые он находит, для поиска сона. Затем он создает ссылку, используя это имя, как имя ссылки. Это обычное (но далеко не универсальное) для того, чтобы имя пользователя было названием и основной версией библиотеки, поэтому ваша библиотека foo.so.1.1 будет иметь имя foo.so.1, а ldconfig сделает ссылку, называемую так.
Никакая часть системы времени выполнения не ищет или ничего не знает о имени foo.so. Это используется, когда вы связываете свои программы с библиотекой. Там нет смысла иметь эту ссылку, если у вас также нет всех других файлов разработки (заголовков и т.д.) Для библиотеки, поэтому нет никакого смысла в ldconfig автоматически создавать его. И поскольку имя используемой ссылки - это еще одно соглашение, и в этом случае вообще не сохраняется внутри файла, нет возможности для ldconfig узнать, какое имя создать.
Обычно это будет создаваться вручную, в задаче установки Makefile; когда библиотека упакована для дистрибутива Linux, ссылка обычно находится в пакете -dev вместе с файлами заголовков.