Каковы хорошие практики в отношении разделяемых библиотек в Linux?
Недавно я много читал о разделяемых библиотеках в Linux, и вот что я узнал:
- Общая библиотека должна встраивать
soname
включая его основной номер версии. Что-то вроде:libfoo.so.1
- Его реальное имя файла также должно включать вспомогательный номер версии. Что-то вроде:
libfoo.so.1.0
- Когда файл библиотеки копируется, скажем,
/usr/local/lib
, еслиldconfig
будет запущен, он будет читатьsoname
и создайте символическую ссылку с именемlibfoo.so.1
указывая наlibfoo.so.1.0
, - Если кто-то хочет использовать эту библиотеку для своих разработок, он должен сначала создать символическую ссылку без какого-либо номера версии на настоящий файл, скажем,
libfoo.so
указывая наlibfoo.so.1.0
, Обычно это делается пакетом разработки (когда библиотека упакована).
Это правильно?
1 ответ
Решение
Предлагаемое чтение:
Ульрих Дреппер Как писать общие библиотеки: http://www.akkadia.org/drepper/dsohowto.pdf
Передовой опыт Ульриха Дреппера в области проектирования, реализации и обслуживания библиотек: http://www.akkadia.org/drepper/goodpractice.pdf
Dsohowto гораздо более подробно. GoodPractice - это быстрое чтение.