Issue
I cannot use git clone/push etc. in my CentOS 7 due to the following error:
[wsx@localhost ~]$ git clone https://github.com/ShixiangWang/metawho
Cloning into 'metawho'...
fatal: unable to access 'https://github.com/ShixiangWang/metawho/': Protocol https not supported or disabled in libcurl
I tried reading many blogposts on the internet (including stackoverflow) but still cannot solve it.
I tried upgrading curl version but it did not work.
The weird thing is that https
is indeed enabled.
[wsx@localhost ~]$ curl -V
curl 7.64.1 (x86_64-conda_cos6-linux-gnu) libcurl/7.64.1 OpenSSL/1.1.1 zlib/1.2.11 libssh2/1.8.2
Release-Date: 2019-03-27
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS GSS-API HTTPS-proxy IPv6 Kerberos Largefile libz NTLM NTLM_WB SPNEGO SSL TLS-SRP UnixSockets
[wsx@localhost ~]$ git --version
git version 2.9.5
This bothers me many days, and I know little about git and curl/libcurl, I hope someone know how to solve this and help me out.
This is not duplicate issue. Thanks in advance.
Best,
Shixiang
UPDATE:
[wsx@localhost ~]$ ldd $(which curl)
linux-vdso.so.1 => (0x00007ffccfd81000)
libcurl.so.4 => /opt/anaconda3/bin/../lib/libcurl.so.4 (0x00007f064b209000)
libz.so.1 => /opt/anaconda3/bin/../lib/libz.so.1 (0x00007f064b1e9000)
librt.so.1 => /lib64/librt.so.1 (0x00007f064aea2000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f064ac86000)
libc.so.6 => /lib64/libc.so.6 (0x00007f064a8b8000)
libssh2.so.1 => /opt/anaconda3/bin/../lib/./libssh2.so.1 (0x00007f064b199000)
libssl.so.1.1 => /opt/anaconda3/bin/../lib/./libssl.so.1.1 (0x00007f064b100000)
libcrypto.so.1.1 => /opt/anaconda3/bin/../lib/./libcrypto.so.1.1 (0x00007f064a5bf000)
libgssapi_krb5.so.2 => /opt/anaconda3/bin/../lib/./libgssapi_krb5.so.2 (0x00007f064a570000)
libkrb5.so.3 => /opt/anaconda3/bin/../lib/./libkrb5.so.3 (0x00007f064a494000)
libk5crypto.so.3 => /opt/anaconda3/bin/../lib/./libk5crypto.so.3 (0x00007f064b0e0000)
libcom_err.so.3 => /opt/anaconda3/bin/../lib/./libcom_err.so.3 (0x00007f064b0da000)
/lib64/ld-linux-x86-64.so.2 (0x00007f064b0aa000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f064a290000)
libkrb5support.so.0 => /opt/anaconda3/bin/../lib/././libkrb5support.so.0 (0x00007f064a281000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f064a068000)
UPDATE
[wsx@localhost ~]$ echo $LD_LIBRARY_PATH
/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/runtime/glnxa64:
/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/bin/glnxa64:
/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/sys/os/glnxa64:
/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/runtime/glnxa64:
/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/bin/glnxa64:
/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/sys/os/glnxa64:
/home/public/R/R-base/lib64/R/lib::/lib:/usr/local/lib64:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre/lib/amd64/server
I also want to tell that I just used git clone
with root
user, it works, root
and wsx
use different ldd
. So the problem may be caused by some wrong operation. Hope this may help.
[root@localhost ~]# ldd $(which curl)
linux-vdso.so.1 => (0x00007ffc593cc000)
libcurl.so.4 => /lib64/libcurl.so.4 (0x00007f466f5d0000)
libmetalink.so.3 => /lib64/libmetalink.so.3 (0x00007f466f3c0000)
libssl3.so => /lib64/libssl3.so (0x00007f466f167000)
libsmime3.so => /lib64/libsmime3.so (0x00007f466ef3f000)
libnss3.so => /lib64/libnss3.so (0x00007f466ec10000)
libnssutil3.so => /lib64/libnssutil3.so (0x00007f466e9e0000)
libplds4.so => /lib64/libplds4.so (0x00007f466e7dc000)
libplc4.so => /lib64/libplc4.so (0x00007f466e5d7000)
libnspr4.so => /lib64/libnspr4.so (0x00007f466e399000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f466e17d000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f466df79000)
libz.so.1 => /lib64/libz.so.1 (0x00007f466dd63000)
libc.so.6 => /lib64/libc.so.6 (0x00007f466d995000)
libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007f466d76e000)
libssh2.so.1 => /lib64/libssh2.so.1 (0x00007f466d534000)
libpsl.so.0 => /lib64/libpsl.so.0 (0x00007f466d2bc000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f466d06f000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f466cd86000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f466cb53000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f466c94f000)
libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007f466c6fa000)
liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007f466c4eb000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f466c2c1000)
librt.so.1 => /lib64/librt.so.1 (0x00007f466c0b9000)
/lib64/ld-linux-x86-64.so.2 (0x00007f466f85d000)
libssl.so.10 => /lib64/libssl.so.10 (0x00007f466be47000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f466b9e4000)
libicuuc.so.50 => /lib64/libicuuc.so.50 (0x00007f466b66b000)
libicudata.so.50 => /lib64/libicudata.so.50 (0x00007f466a098000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f4669e88000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f4669c84000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f4669a6b000)
libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f466984e000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f466f915000)
libm.so.6 => /lib64/libm.so.6 (0x00007f466954c000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f4669336000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f466910f000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f4668ed8000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f4668c76000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f4668a73000)
How can I change it back?
Solved
@VonC Thanks your reply and patience, export LD_LIBRARY_PATH=/lib64:/opt/anaconda3/bin/lib:${LD_LIBRARY_PATH}
works. However, I am still confused, because the libcurl.so is not changed
[wsx@localhost ~]$ git clone https://github.com/ShixiangWang/metawho
Cloning into 'metawho'...
remote: Enumerating objects: 145, done.
remote: Counting objects: 100% (145/145), done.
remote: Compressing objects: 100% (80/80), done.
remote: Total 235 (delta 68), reused 126 (delta 51), pack-reused 90
Receiving objects: 100% (235/235), 850.89 KiB | 39.00 KiB/s, done.
Resolving deltas: 100% (99/99), done.
Checking connectivity... done.
[wsx@localhost ~]$ ldd $(which curl)
linux-vdso.so.1 => (0x00007ffc348db000)
libcurl.so.4 => /opt/anaconda3/bin/../lib/libcurl.so.4 (0x00007f9da54e9000)
libz.so.1 => /opt/anaconda3/bin/../lib/libz.so.1 (0x00007f9da54c8000)
librt.so.1 => /lib64/librt.so.1 (0x00007f9da5181000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9da4f65000)
libc.so.6 => /lib64/libc.so.6 (0x00007f9da4b97000)
libssh2.so.1 => /opt/anaconda3/bin/../lib/./libssh2.so.1 (0x00007f9da5494000)
libssl.so.1.1 => /opt/anaconda3/bin/../lib/./libssl.so.1.1 (0x00007f9da53fc000)
libcrypto.so.1.1 => /opt/anaconda3/bin/../lib/./libcrypto.so.1.1 (0x00007f9da489e000)
libgssapi_krb5.so.2 => /opt/anaconda3/bin/../lib/./libgssapi_krb5.so.2 (0x00007f9da53ac000)
libkrb5.so.3 => /opt/anaconda3/bin/../lib/./libkrb5.so.3 (0x00007f9da47c2000)
libk5crypto.so.3 => /opt/anaconda3/bin/../lib/./libk5crypto.so.3 (0x00007f9da47a3000)
libcom_err.so.3 => /opt/anaconda3/bin/../lib/./libcom_err.so.3 (0x00007f9da479d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9da5389000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f9da4598000)
libkrb5support.so.0 => /opt/anaconda3/bin/../lib/././libkrb5support.so.0 (0x00007f9da4589000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f9da4370000)
[wsx@localhost ~]$ echo $LD_LIBRARY_PATH
/lib64:/opt/anaconda3/bin/lib:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/runtime/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/bin/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/sys/os/glnxa64:/opt/anaconda3/bin/lib:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/runtime/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/bin/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/sys/os/glnxa64:/opt/anaconda3/bin/lib:/opt/anaconda3/bin/lib:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/runtime/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/bin/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/sys/os/glnxa64::/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/runtime/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/bin/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/sys/os/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/runtime/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/bin/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/sys/os/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/runtime/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/bin/glnxa64:/public/tools/GISTIC2/MATLAB_Compiler_Runtime/v83/sys/os/glnxa64
How to understand why it works now?
Solution
Git can be compiled without curl, to use for instance wget.
As seen here, an ldd
on git can show you the runtime binary dependencies. If you don't see libcurl, that would explain the error message.
Try and install on CentOS7 a Git 2.19, which does have libcurl in its dependencies.
With an annaconda3
(open-source package manager, environment manager, and distribution of the Python and R programming languages) curl
, try
export LD_LIBRARY_PATH=/opt/anaconda3/bin/lib:${LD_LIBRARY_PATH}
Or you can try and compile it from sources on CentOS
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker
cd /usr/src
wget https://www.kernel.org/pub/software/scm/git/git-2.23.0.tar.gz
tar xzf git-2.23.0.tar.gz
cd git-2.21.0
make prefix=/usr/local/git all
make prefix=/usr/local/git install
echo "export PATH=/usr/local/git/bin:$PATH" >> /etc/bashrc
source /etc/bashrc
Answered By - VonC