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

标签 git ubuntu ubuntu-14.04

我正在尝试使用带有企业代理的 Ubuntu 调试一个特定存储库的 git clone、https 协议(protocol)的奇怪问题。同样的事情适用于 CentOS、Fedora 发行版,但不适用于我们环境中的 Ubuntu 或 Debian。

显然在 Ubuntu 包中 git 使用 gnutls,但在其他平台上使用 openssl。然而,根据 this 从源构建,即使在 Ubuntu 上,也会使用 openssl .

有没有办法让我从给定的 git 安装中检查二进制文件正在使用哪个?一些输出会告诉我?

These questions是相关的,但两者都谈论在运行时或构建时更改它 - 在这一点上我只需要有关它是哪一个的信息。

最佳答案

$ cd /usr/lib/git-core
$ ./git --version
git version 1.9.1
$ ldd git-http-fetch | grep libcurl
    libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f8d5dcdf000)

$ cd /usr/libexec/git-core
$ ./git --version
git version 2.8.1
$ ldd git-http-fetch | grep libcurl
    libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f6bd1e42000)

显然我的操作系统提供的版本和我自己编译的版本都反对 gnutls。

这是运行相同命令时 openssl 输出的样子,没有 libcurl-gnutls,但是

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

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

关于git - 如何查看 git binary 使用的是 openssl 还是 gnutls?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36939033/

相关文章:

c - 如何在sublime text 3中编译运行C?

ubuntu-14.04 - 无法找到包 nss-devel - Ubuntu 14.04

android - 'Android 预编译器' 错误 'Path must include project and resource name'

ubuntu - 将带有 SCP 的大文件发送到某个服务器时恰好在 2112 kB 处停止

git - Android Studio 项目的 .gitignore 中应该包含什么?

linux - 无法将现有的 git 存储库推送到 github

python - 如何从终端卸载特定的 python 程序?

hadoop - PIG命令执行

git - 为什么 git 将我的分支名称前缀大写?

git - 如何摆脱 git 中的虚假更改?