Существует ли какое-либо дерево зависимостей или граф для библиотек, используемых Gpg2, например libgpg-error
или libassuan &c.
?
Или другой способ определить, какие мне нужно перекомпилировать после того, как один из них получит новую версию?Например, libgpg-error, насколько я понимаю, довольно проста, и поэтому, если она будет обновлена, возможно, все остальные придется перекомпилировать?
Иногда у меня возникают проблемы, когда после обновления библиотеки я не могу скомпилировать новую версию Gpg2, так какон пытается связать старую, уже удаленную версию этой библиотеки (у меня есть нестандартная структура каталогов для них) и выдает сообщение «не могу найти библиотеку».И после некоторых - не очень тщательных - исследований, я полагаю, это вызвано тем, что информация об этой конкретной версии библиотеки взята из других библиотек, которые были созданы до обновления.
Пример: я недавно обновил libgpg-error до1,32.Сегодня я попытался (и не смог (и должен был это исправить вручную)) скомпилировать Gpg 2.2.10.
Команда, которая потерпела неудачу, была следующей (сокращенной):
/usr/local/bin/gcc -std=gnu99 ... \
-I/usr/local/libgpg-error-1.31/include \
-I/usr/local/libgpg-error-1.25/include \
-I/usr/local/libgpg-error-1.31/include \
-I/usr/local/libgpg-error-1.32/include \
-o dirmngr dirmngr.o server.o crlcache.o crlfetch.o certcache.o ... \
../common/libcommonpth.a -lresolv \
-L/usr/local/libgpg-error-1.31/lib -lgpg-error \
-L/usr/local/libgpg-error-1.31/lib -lgpg-error \
-L/usr/local/libgpg-error-1.25/lib -lgpg-error \
...
Обратите внимание, как она пытается включить в версии 1.25, 1.31 и 1.32 заголовки libgpg-error и ссылки версии 1.25 и 1.31 (ноНЕ 1.32) из libgpg-error.so, хотя на диске больше нет ни одной из этих версий, кроме текущей, т.е. 1.32.Однако они присутствовали ранее, когда были скомпилированы некоторые другие библиотеки.