gpt4 book ai didi

gnupg - Gpg2 库依赖树

转载 作者:行者123 更新时间:2023-12-04 15:54:23 27 4
gpt4 key购买 nike

是否有一些 Gpg2 使用的库的依赖树或图,例如 libgpg-errorlibassuan &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 header 以及链接 1.25 和 1.31 版(但不是 1.32)的 libgpg-error.so,尽管这些版本都不再存在于磁盘上除了当前的,即 1.32。然而,当其他一些库被编译时,它们更早出现。

最佳答案

似乎没有可用的答案,所以我至少尝试查看各个库的 configure 脚本,这是(非常没有任何保证)我想出的 - 一些依赖图和建议的编译顺序:

level 0
| libgpg-error
| nPth
level 1
| libgcrypt (libgpg-error)
| libksba (libgpg-error)
| libassuan (libgpg-error)
level 2
| ntbTLS (libgpg-error, libgcrypt, libksba)
| pinentry (libgpg-error, libassuan)
level N
| gpg2 (libgpg-error, libgcrypt, libassuan, libksba, nPth) [pinentry, ntbTLS]
level N+1
| GPGME (libgpg-error, libassuan)
level N+2
| GPA (libgpg-error, libassuan, GPGME)

(根据 Ben 在评论中的建议进行编辑。)

关于gnupg - Gpg2 库依赖树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52404155/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com