Я нуждаюсь в помощи в письменной форме Make-файл, который устанавливает мою библиотеку по Linux FHS. https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev говорит, что должна быть ссылка от .so
кому: .so.$(version).$(minor)
и ссылка от .so.$(version)
кому: .so
кому: .so.$(version).$(minor)
. Ниже отрывок от моего Make-файла
install -D ${CND_ARTIFACT_PATH_${CONF}} $(DESTDIR)/usr/lib/${CND_ARTIFACT_NAME_${CONF}}.$(version).0.0
ln -s $(DESTDIR)/usr/lib/${CND_ARTIFACT_NAME_${CONF}}.$(version).0.0 $(DESTDIR)/usr/lib/${CND_ARTIFACT_NAME_${CONF}}
ln -s $(DESTDIR)/usr/lib/${CND_ARTIFACT_NAME_${CONF}}.$(version).0.0 $(DESTDIR)/usr/lib/${CND_ARTIFACT_NAME_${CONF}}.$(version)
после упаковки с dpkg-buildpackage -rfakeroot -b
и устанавливая пакет созданные гибкие ссылки указывают на фактический .so, используемый для создания пакета, но не к .so, который был установлен в /usr/lib/
gowtham@VBUbu:~$ ls -la /usr/lib/libbase.so.1*
lrwxrwxrwx 1 root root 67 Aug 25 00:35 /usr/lib/libbase.so.1 -> /home/gowtham/Packages/base-1.0/debian/tmp/usr/lib/libbase.so.1.0.0
-rw-r--r-- 1 root root 170588 Aug 25 00:35 /usr/lib/libbase.so.1.0.0
Для символьных ссылок на библиотеки я мог найти в своей системе, ссылки были всем родственником, и не абсолютные:
lrwxrwxrwx 1 root root 14 Aug 9 03:52 libwine.so -> libwine.so.1.0
lrwxrwxrwx 1 root root 14 Aug 9 03:52 libwine.so.1 -> libwine.so.1.0
Так, похоже, что Make-файл должен сделать cd
к папке библиотеки и сделать относительные символьные ссылки:
cd $(DESTDIR)/usr/lib
ln -s ${CND_ARTIFACT_NAME_${CONF}}.$(version).0.0 ${CND_ARTIFACT_NAME_${CONF}}
ln -s ${CND_ARTIFACT_NAME_${CONF}}.$(version).0.0 ${CND_ARTIFACT_NAME_${CONF}}.$(version)
cd -