解决git gnutls_handshake失败

4970阅读 0评论2018-04-15 jasenwan88
分类:LINUX

解决git 无法clone的问题,错误提示如下


error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ...
fatal: HTTP request failed




Got reason of the problem, it was gnutls package. It's working weird behind a proxy. But openssl is working fine even in weak network. So workaround is that we should compile git with openssl. To do this, run the following commands:

sudo apt-get install build-essential fakeroot dpkg-dev
mkdir ~/git-openssl
cd ~/git-openssl
sudo apt-get source git
sudo apt-get build-dep git
sudo apt-get install libcurl4-openssl-dev
sudo dpkg-source -x git_1.7.9.5-1.dsc
cd git_1.7.9.5 8. 

Then, edit debian/control file (run the command: gksu gedit debian/control) and replace all instances of libcurl4-gnutls-dev with libcurl4-openssl-dev

sudo dpkg-buildpackage -rfakeroot -b 

(if it's failing on test, you can remove the line TEST=test from the file debian/rules)

sudo dpkg -i ../git_1.7.9.5-1_i386.deb 
上一篇:Ubuntu16.04配置apache+php+mysql
下一篇:没有了