我正在运行CentOS Linux 7.7.1908
的服务器上安装git,但我没有root权限。
我以前用过Conda来安装Git和其他一些工具,因为它不需要root访问权限,但它不是一个干净的解决方案,我不得不关闭环境几次才能使用某些程序。所以我尝试从源代码安装到我的~/.local树,作为一个学习练习和方便。
从源目录安装到我的用户目录后,我可以使用git可执行文件克隆SSH remote,但不能克隆HTTPS。
$ git clone https://github.com/test/test.git ~/tmp/test_repo
Cloning into '/home/group/user/tmp/test_repo'...
git: 'remote-https' is not a git command. See 'git --help'.
这个问题似乎是由Git构建系统无法识别我系统上的curl/libcurl引起的。
大多数人的解决方案是使用软件包管理器来安装libcurl-devel,或者类似的,我不能这么做。
我确实安装了curl,不管这个CentOS版本附带了什么,我假设:
$ curl -V
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.44 zlib/1.2.7 libidn/1.28 libssh2/1.8.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
我也尝试过从用户目录的源代码安装openSSL和curl,但在尝试构建Git后得到了相同的结果:
$ curl -V
curl 7.85.0 (x86_64-pc-linux-gnu) libcurl/7.85.0 OpenSSL/1.1.1q zlib/1.2.7
Release-Date: 2022-08-31
Protocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS HSTS HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets
My Git安装步骤如下:
$ make configure
$ ./configure --prefix=$HOME/tmp/git_test
$ make all -j
$ make install
运行新生成的二进制文件后,我得到了相同的结果:
$ ./bin/git clone https://github.com/test/test.git ~/tmp/clone_test
Cloning into '/home/user/tmp/clone_test'...
git: 'remote-https' is not a git command. See 'git --help'.
我认为这个问题与我的libcurl安装有关,但我不知道连接在哪里出错了!
编辑:我试着通过解压一个RPM二进制包来安装libcurl-devel,现在我有了如下的目录结构:
├── bin
│ └── curl-config
├── include
│ └── curl
│ ├── curlbuild-64.h
│ ├── curlbuild.h
│ ├── curl.h
│ ├── curlrules.h
│ ├── curlver.h
│ ├── easy.h
│ ├── mprintf.h
│ ├── multi.h
│ ├── stdcheaders.h
│ └── typecheck-gcc.h
├── lib64
│ ├── libcurl.so -> libcurl.so.4.3.0
│ ├── libcurl.so.4 -> libcurl.so.4.3.0
│ ├── libcurl.so.4.3.0
│ └── pkgconfig
│ └── libcurl.pc
└── share
├── aclocal
│ └── libcurl.m4
├── doc
│ └── libcurl-devel-7.29.0
└── man
├── man1
└── man3
为了解决我的问题,我需要知道Git的configure/make工具检测系统是否安装了libcurl的机制。
1条答案
按热度按时间n3ipq98p1#
您需要使用
--with-curl
、--with-openssl
,也可能使用--with-expat