ubuntu 如何查看git binary使用的是openssl还是gnutls?

pgvzfuti  于 2023-10-17  发布在  Git
关注(0)|答案(1)|浏览(165)

我试图调试一个奇怪的问题与git克隆,https协议,一个特定的仓库使用Ubuntu与企业代理。同样的事情在CentOS,Fedora发行版中有效,但在我们的环境中在Ubuntu或Debian上无效。
显然在Ubuntu包中git使用gnutls,但在其他平台上使用openssl。然而,即使是在Ubuntu上,从源代码构建也会根据this使用openssl。
有没有一种方法可以让我从给定的git安装中检查二进制文件使用的是哪一个?一些能告诉我的输出?
Thesequestions是相关的,但两者都谈到在运行时或构建时更改它-在这一点上,我只需要关于它是哪个的信息。

a2mppw5e

a2mppw5e1#

  1. $ cd /usr/lib/git-core
  2. $ ./git --version
  3. git version 1.9.1
  4. $ ldd git-http-fetch | grep libcurl
  5. libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f8d5dcdf000)
  6. $ cd /usr/libexec/git-core
  7. $ ./git --version
  8. git version 2.8.1
  9. $ ldd git-http-fetch | grep libcurl
  10. libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f6bd1e42000)

所以很明显,我的操作系统提供的版本和我自己编译的版本都反对gnutls。
这是openssl输出的样子,当运行相同的命令时,没有libcurl-gnutls,但是

  1. libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007fe96267e000)

看看this answer,似乎git在运行时只是使用系统设置使用的任何libcurl,所以我的问题有点误导。无论如何,这个答案是正确的,因为它将告诉哪个正在使用。

展开查看全部

相关问题