git 克隆总是失败 "Failed sending HTTP request"
git clone always fails with "Failed sending HTTP request"
在一个特定的主机上,我无法 git 通过 https:GitHub 克隆任何 GitHub 仓库:
git clone https://github.com/llvm/llvm-project.git
Cloning into 'llvm-project'...
fatal: unable to access 'https://github.com/llvm/llvm-project.git/': Failed sending HTTP request
我发现的所有类似内容都在谈论 SSL 服务器证书验证失败(例如 here or here)。 运行 strace
下的命令确实表明命令在失败之前遍历了我的所有证书,但是 http.sslVerify => false
hack 没有效果(就像上面的第二个问题一样)。
我已经重新安装了 git
和 ca-certificates
软件包;没有效果。
有人有什么想法吗?即使是有关如何引导 git
告诉我更多有关问题的建议,我们也将不胜感激。
如果您 git version
足够新,您可以使用 trace2 来显示 Git 正在尝试做的事情:
GIT_TRACE2=1 git clone https://...
GIT_TRACE2_EVENT=1 git clone https://...
我怀疑您的主机上有一个不同的(较旧的)libcurl
,与其他主机相比,这会导致 HTTP 请求未发送。
也可以在/usr/bin中查看git的动态库依赖:
ldd git
用另一个解决方案遇到了同样的问题。我 post 这个答案是因为这个问题 smh 同时出现在我所有的 MX Linux 盒子上。就我而言,这是一个不匹配的版本,可以通过 here.
中的解决方案解决
# apt reinstall libcurl3-gnutls/stable
成功了。
建议为此激活 debian/security apt 存储库。
编辑:请参阅 gpweb cgti 的答案以获得更深入和永久的解决方案
在 Debian Buster 上出现同样的问题!
这里报告了问题:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=987187
我的电脑是这样的:
DEBIAN10$ apt policy curl:amd64 libcurl4:amd64 libcurl3-gnutls:amd64
curl:
Instalado: 7.74.0-1.2~bpo10+1
Candidato: 7.74.0-1.2~bpo10+1
Tabela de versão:
*** 7.74.0-1.2~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64 Packages
100 /var/lib/dpkg/status
7.64.0-4+deb10u2 500
500 http://deb.debian.org/debian buster/main amd64 Packages
500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
libcurl4:
Instalado: 7.74.0-1.2~bpo10+1
Candidato: 7.74.0-1.2~bpo10+1
Tabela de versão:
*** 7.74.0-1.2~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64 Packages
100 /var/lib/dpkg/status
7.64.0-4+deb10u2 500
500 http://deb.debian.org/debian buster/main amd64 Packages
500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
libcurl3-gnutls:
Instalado: 7.64.0-4+deb10u2
Candidato: 7.64.0-4+deb10u2
Tabela de versão:
7.74.0-1.2~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64 Packages
*** 7.64.0-4+deb10u2 500
500 http://deb.debian.org/debian buster/main amd64 Packages
500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
100 /var/lib/dpkg/status
然后,我成功了!
DEBIAN10$ apt reinstall libcurl3-gnutls/stable
现在可以了! (感谢@Cobalt)
更改后的配置:
DEBIAN10$ apt policy curl:amd64 libcurl4:amd64 libcurl3-gnutls:amd64
curl:
Instalado: 7.74.0-1.2~bpo10+1
Candidato: 7.74.0-1.2~bpo10+1
Tabela de versão:
*** 7.74.0-1.2~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64 Packages
100 /var/lib/dpkg/status
7.64.0-4+deb10u2 500
500 http://deb.debian.org/debian buster/main amd64 Packages
500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
libcurl4:
Instalado: 7.74.0-1.2~bpo10+1
Candidato: 7.74.0-1.2~bpo10+1
Tabela de versão:
*** 7.74.0-1.2~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64 Packages
100 /var/lib/dpkg/status
7.64.0-4+deb10u2 500
500 http://deb.debian.org/debian buster/main amd64 Packages
500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
libcurl3-gnutls:
Instalado: 7.64.0-4+deb10u2
Candidato: 7.64.0-4+deb10u2
Tabela de versão:
7.74.0-1.2~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64 Packages
*** 7.64.0-4+deb10u2 500
500 http://deb.debian.org/debian buster/main amd64 Packages
500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
100 /var/lib/dpkg/status
另外,在/etc/apt/preferences.d/99debian-backports
文件中添加以下内容,以免下次升级时再次出现问题!
/etc/apt/preferences.d/99debian-backports
Package: *
Pin: release a=buster-backports
Pin-Priority: 900
Package: libcurl3-gnutls:amd64
Pin: release a=stable
Pin-Priority: 901
由于某些未知原因,之前的解决方案不再有效。
现在,它看起来很好。
sudo apt-get -t buster reinstall libcurl3-gnutls:amd64=7.64.0-4+deb10u2
sudo apt-mark hold libcurl3-gnutls
在一个特定的主机上,我无法 git 通过 https:GitHub 克隆任何 GitHub 仓库:
git clone https://github.com/llvm/llvm-project.git
Cloning into 'llvm-project'...
fatal: unable to access 'https://github.com/llvm/llvm-project.git/': Failed sending HTTP request
我发现的所有类似内容都在谈论 SSL 服务器证书验证失败(例如 here or here)。 运行 strace
下的命令确实表明命令在失败之前遍历了我的所有证书,但是 http.sslVerify => false
hack 没有效果(就像上面的第二个问题一样)。
我已经重新安装了 git
和 ca-certificates
软件包;没有效果。
有人有什么想法吗?即使是有关如何引导 git
告诉我更多有关问题的建议,我们也将不胜感激。
如果您 git version
足够新,您可以使用 trace2 来显示 Git 正在尝试做的事情:
GIT_TRACE2=1 git clone https://...
GIT_TRACE2_EVENT=1 git clone https://...
我怀疑您的主机上有一个不同的(较旧的)libcurl
,与其他主机相比,这会导致 HTTP 请求未发送。
也可以在/usr/bin中查看git的动态库依赖:
ldd git
用另一个解决方案遇到了同样的问题。我 post 这个答案是因为这个问题 smh 同时出现在我所有的 MX Linux 盒子上。就我而言,这是一个不匹配的版本,可以通过 here.
中的解决方案解决# apt reinstall libcurl3-gnutls/stable
成功了。
建议为此激活 debian/security apt 存储库。
编辑:请参阅 gpweb cgti 的答案以获得更深入和永久的解决方案
在 Debian Buster 上出现同样的问题!
这里报告了问题: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=987187
我的电脑是这样的:
DEBIAN10$ apt policy curl:amd64 libcurl4:amd64 libcurl3-gnutls:amd64
curl:
Instalado: 7.74.0-1.2~bpo10+1
Candidato: 7.74.0-1.2~bpo10+1
Tabela de versão:
*** 7.74.0-1.2~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64 Packages
100 /var/lib/dpkg/status
7.64.0-4+deb10u2 500
500 http://deb.debian.org/debian buster/main amd64 Packages
500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
libcurl4:
Instalado: 7.74.0-1.2~bpo10+1
Candidato: 7.74.0-1.2~bpo10+1
Tabela de versão:
*** 7.74.0-1.2~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64 Packages
100 /var/lib/dpkg/status
7.64.0-4+deb10u2 500
500 http://deb.debian.org/debian buster/main amd64 Packages
500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
libcurl3-gnutls:
Instalado: 7.64.0-4+deb10u2
Candidato: 7.64.0-4+deb10u2
Tabela de versão:
7.74.0-1.2~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64 Packages
*** 7.64.0-4+deb10u2 500
500 http://deb.debian.org/debian buster/main amd64 Packages
500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
100 /var/lib/dpkg/status
然后,我成功了!
DEBIAN10$ apt reinstall libcurl3-gnutls/stable
现在可以了! (感谢@Cobalt)
更改后的配置:
DEBIAN10$ apt policy curl:amd64 libcurl4:amd64 libcurl3-gnutls:amd64
curl:
Instalado: 7.74.0-1.2~bpo10+1
Candidato: 7.74.0-1.2~bpo10+1
Tabela de versão:
*** 7.74.0-1.2~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64 Packages
100 /var/lib/dpkg/status
7.64.0-4+deb10u2 500
500 http://deb.debian.org/debian buster/main amd64 Packages
500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
libcurl4:
Instalado: 7.74.0-1.2~bpo10+1
Candidato: 7.74.0-1.2~bpo10+1
Tabela de versão:
*** 7.74.0-1.2~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64 Packages
100 /var/lib/dpkg/status
7.64.0-4+deb10u2 500
500 http://deb.debian.org/debian buster/main amd64 Packages
500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
libcurl3-gnutls:
Instalado: 7.64.0-4+deb10u2
Candidato: 7.64.0-4+deb10u2
Tabela de versão:
7.74.0-1.2~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64 Packages
*** 7.64.0-4+deb10u2 500
500 http://deb.debian.org/debian buster/main amd64 Packages
500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
100 /var/lib/dpkg/status
另外,在/etc/apt/preferences.d/99debian-backports
文件中添加以下内容,以免下次升级时再次出现问题!
/etc/apt/preferences.d/99debian-backports
Package: *
Pin: release a=buster-backports
Pin-Priority: 900
Package: libcurl3-gnutls:amd64
Pin: release a=stable
Pin-Priority: 901
由于某些未知原因,之前的解决方案不再有效。
现在,它看起来很好。
sudo apt-get -t buster reinstall libcurl3-gnutls:amd64=7.64.0-4+deb10u2
sudo apt-mark hold libcurl3-gnutls