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

时间:2018-06-28 17:35:28

标签: 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中工作。我已经检查过this solution,但对我来说不起作用。我要做的就是git clone。

2 个答案:

答案 0 :(得分:18)

最后找到答案。看来我必须这样做:

git config --global http.proxy http://<my_proxy>:<my_port>
git config --global https.proxy https://<my_proxy>:<my_port>

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

答案 1 :(得分:1)

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

您可以关注This BogYou can find simple script here to do that