Версия библиотеки, версия API и soname: как их назвать?

Предположим, у меня есть библиотека под названием libfoo и

  • его версия 0.4.2
  • где 0.4 – версия API и
  • 2 – номер выпуска, который может добавить новые функции API.

Должно ли сонаты быть libfoo.so.0.4 , libfoo.so.0.4.2 или что-то еще?

2 Solutions collect form web for “Версия библиотеки, версия API и soname: как их назвать?”

Если версия api 0.4 , и она несовместима с другими версиями 0.* тогда вы должны установить soname для libfoo.so.0.4 . На самом деле soname может быть любой строкой, нужно только найти нужную общую библиотеку в вашей системе при загрузке исполняемого файла.

Многие пакеты (или дистрибутивы) соответствуют схеме именования, отличной от вашей. Например, версия libfoo 0.4.2 с api 0.4 станет libfoo.so.4.2 с soname libfoo.4 .

И при существенных изменениях интерфейса, требующих не просто перекомпиляции и незначительной коррекции здесь и там, но много кода переписывается в коде с использованием библиотеки – нажимайте «главную» основную версию, переименовав библиотеку. Затем libfoo.4.2 превращается в libfoo-1.so.0.1 при libfoo-1.so.0.1 версии с 0.4.2 в 1.0.1 .

Такая схема упрощает установку нескольких версий вашей библиотеки, если какое-то старое программное обеспечение еще не переписано полностью новому api.

Нормальный вы создаете файл libfoo.so.0.4.2 и symlink libfoo.so.0 -> libfoo.so.0.4.2

  • В чем смысл использования нечислового компонента пакета для версии?
  • Linux и Unix - лучшая ОС в мире.