linux 源码安装git, 各种坑,记录一下
获取源码
wget https://github.com/git/git/archive/v2.3.0.zip
unzip v2.3.0.zip
cd git-2.3.0
编译安装
设置
注意看 Makefile ,下边几个宏需要注意
-
CURLDIR
找不到libcurl的*.h和lib,重新安装了libcurl, 需要指定libcurl的*.h, lib的位置 -
NO_R_TO_GCC_LINKER
编译过程中出现error: unrecognized option '-R'
, 重设链接rpath -
NO_EXPAT :
不使用 expat,没有git-http-push, 在当前的场景下不需要git push
export CURLDIR=/usr/local/curl
export NO_R_TO_GCC_LINKER=1
export NO_EXPAT=1
make
编译过程中可能会出现
usr/bin/perl Makefile.PL PREFIX='/usr/local/git' INSTALL_BASE='' --localedir='/usr/local/git/share/locale'
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line
重新安装 yum install perl-ExtUtils-MakeMaker
安装
make install
默认把git 相关二进制 放在 ~/bin/ 下 , 可以用prefix指定
make prefix=/usr/local/bin install
注:make 后 sudo make install 提示 编译flag变化,重新编译,结果又找不到 libcurl , 最后是 make install , 再把相关bin cp到 /usr/local/bin/ 下