я не врубаюсь. Зачем вообще нужно .so, .so.1 .so.1.0 .so.1.0.0 где одинаковое содержимое?
почему одинаковое? просто so это в 99% линк на либу уже с версией. у тебя приложения ссылаются на so. через полный путь. и если название сменить будет упсс.
Версии нужны для контроля зависимостей.
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html Every shared library has a special name called the ``soname''. The soname has the prefix ``lib'', the name of the library, the phrase ``.so'', followed by a period and a version number that is incremented whenever the interface changes (as a special exception, the lowest-level C libraries don't start with ``lib''). A fully-qualified soname includes as a prefix the directory it's in; on a working system a fully-qualified soname is simply a symbolic link to the shared library's ``real name''. .... Thus, /usr/lib/libreadline.so.3 is a fully-qualified soname, which ldconfig would set to be a symbolic link to some realname like /usr/lib/libreadline.so.3.0. There should also be a linker name, /usr/lib/libreadline.so which could be a symbolic link referring to /usr/lib/libreadline.so.3.
Обсуждают сегодня