git clone error:gnutls_handshake()失败:收到意外的TLS数据包

Roc*_*ock 11 git ubuntu-18.04

我在armv7l上运行Ubuntu 18.04 LTS.我在代理中运行git clone(我正确设置了代理变量),但现在我得到了这个;

fatal: unable to access '<my_git>.git/': gnutls_handshake() failed: An unexpected TLS packet was received.

它曾经在Ubuntu 16.04中工作.我已经检查了这个解决方案,但它对我不起作用.我所要做的就是克隆克隆.

Roc*_*ock 24

终于找到了答案.看来我必须这样做:

git config --global http.proxy http://<my_proxy>:<my_port>
git config --global https.proxy https://<my_proxy>:<my_port>
Run Code Online (Sandbox Code Playgroud)

花了一些时间在这上面,但幸运的是它最终有效.我认为这很难解决,但事实证明这是我以前从未在Ubuntu 16.04上做过的一些命令.

  • my_proxy是什么? (3认同)

nul*_*e91 5

可能是gnutls包的问题。我们必须用 openssl 而不是 gnutls编译一个git包。按照以下步骤,

sudo apt-get install -y build-essential fakeroot dpkg-dev
sudo apt-get -y build-dep git
sudo apt-get install -y libcurl4-openssl-dev

mkdir git-openssl
cd git-openssl
apt-get source git
cd git-*
sed -i -e 's/libcurl4-gnutls-dev/libcurl4-openssl-dev/g' 
./debian/control
sed -i -- '/TEST\s*=\s*test/d' ./debian/rules
sudo dpkg-buildpackage -rfakeroot -b
sudo dpkg -i git_2.7.4-0ubuntu1.6_arm64.deb

#CleanUp
cd ../../
sudo rm -rf git-openssl
Run Code Online (Sandbox Code Playgroud)

你可以按照这个沼泽或者你可以在这里找到简单的脚本来做到这一点