Как записать Make-файл для упаковки .so динамической библиотеки, которая установит все необходимые ссылки

Я нуждаюсь в помощи в письменной форме 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
0
задан 25 August 2014 в 02:32

1 ответ

Для символьных ссылок на библиотеки я мог найти в своей системе, ссылки были всем родственником, и не абсолютные:

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 -
1
ответ дан 7 October 2019 в 05:10

Другие вопросы по тегам:

Похожие вопросы: