sudo apt-get update sudo apt-get install build-essential fakeroot dpkg-dev libcurl4-openssl-dev sudo apt-get build-dep git mkdir ~/git-openssl cd ~/git-openssl apt-get source git cd git-2.17.0/
vim debian/control # replace all libcurl4-gnutls-dev with libcurl4-openssl-dev
vim debian/rules # remove line "TEST =test" otherwise it takes longer to build the package
sudo dpkg-buildpackage -rfakeroot -b -uc -us # add "-uc -us" to avoid error "gpg: No secret key"
sudo dpkg -i ../git_2.17.0-1ubuntu1_amd64.deb
Note 1: I got “OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to proxy” when doing “git clone https://…” after steps above, which turns out to be a problem about git proxy setting. It can be fixed by:
git config --global http.proxy http://proxy.server.com:8080
git config --global https.proxy https://proxy.server.com:8080
Note that it’s better to verify the proxy & port works well first in browsers like Chrome. Reference link: here.
Note 2: I accidentally removed libcurl4-gnutls-dev when trying different approaches, unfortunately, lots of dependent libs are removed as well, including the network manager and GDM3. As a result, the network can’t work any more and the whole display UI was messed up(it switched to lightdm for display manager). I managed to fix the mess with “sudo apt install gdm3”.
So as a lesson learn, don’t remove libcurl4-gnutls-dev for this issue.