Знатоки, подскажите, какой командой можно получить информацию о версии установленной в системе .so-шки?
Здравствуйте, opener, Вы писали:
O>Ну вот лежит у меня в системе libxml2.so
O>Как узнать, из какого пакета она была установлена?
O>Linux RedHat
Если это файл, а не симлинк, то
$ rpm -qif /usr/lib/libxml2.so
Если симлинк, то глянуть, на какой файл он смотрит. В моей системе, например:
$ readlink /usr/lib/libxml2.so
libxml2.so.2.9.1
Версия 2.9.1.
Здравствуйте, ДимДимыч, Вы писали:
ДД>Здравствуйте, opener, Вы писали:
O>>Ну вот лежит у меня в системе libxml2.so
O>>Как узнать, из какого пакета она была установлена?
O>>Linux RedHat
ДД>Если это файл, а не симлинк, то
ДД>$ rpm -qif /usr/lib/libxml2.so
ДД>Если симлинк, то глянуть, на какой файл он смотрит. В моей системе, например:
ДД>$ readlink /usr/lib/libxml2.so
ДД>libxml2.so.2.9.1
ДД>Версия 2.9.1.
стоит однако заметить, что не всегда эти циферки значат "версия пакета". не берусь сказать насколько "далеко" не всегда, в частности идеология используемая libtool'ом приводит к тому, что эти циферки практически никак не связаны с версией пакета (и даже API библы), а только лишь с количеством "интерфейсов" (и изменений) предоставляемых библой (т.е. ABI, которое не равно версии API). почитать можно
здесь и
здесь. и, насколько я помню, эта схема уходит корнями в солярис -- просто была чуть допилена.
т.е. вообще говоря, пакеты которые устанавливают свои .soшки с циферками совпадающими с версией пакета, фактически не корректно используют правила версионирования .soшек. (
и маинтэйнеров надо бить по рукам)
библы с версией должны именоваться как libname-PKG-MAJOR.PKG-MINOR.PKG-PATCH.so.ABI-CURRENT.ABI-REVISION.ABI-AGE, но это не клевая практика, ибо ломает идею динамической линковки библиотек с разными версиями API и поэтому не часто применяется.