查看当前版本
git --version
安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
yum install gcc perl-ExtUtils-MakeMaker
卸载低版本git
yum remove git
下载新版本git
wget https://github.com/git/git/archive/v2.23.0.tar.gz
编译安装
tar -zxvf v2.23.0.tar.gz
cd git-2.23.0
make prefix=/usr/local/git all
make prefix=/usr/local/git install
设置环境变量
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile
source /etc/profile
编译过程可能遇到的坑
这是没有libcurl的库造成的,执行yum install -y curl-devel 进行安装,可能存在下面的提示
rpm --query --all | grep curl 发现安装了libcurl-7.85.0-1.0.cf.rhel7.x86_64,而且安装不了低版本的libcurl-7.29.0-59.el7_9.2.i686
到了这一步从网上搜的 Protected multilib versions 的解决办法
Protected multilib versions: libssh2-1.8.0-4.el7_9.1.i686 != libssh2-1.10.0-4.0.cf.rhel7.x86_64
Error: Protected multilib versions: libcurl-7.29.0-59.el7_9.2.i686 != libcurl-7.85.0-1.0.cf.rhel7.x86_64
都是在后面加上在yum命令的最后加上 --setopt=protected_multilib=false 语句去执行
执行完成后,发现还是没有安装上需要的libcurl-7.29.0-59.el7_9.2.i686,根据提示是已有的libcurl-7.85.0-1.0.cf.rhel7.x86_64版本新,所有没有办法安装低版本。
解决思路,降低libcurl库的版本:
1.查看软件版本 yum search --showduplicates 软件名
2.软件降级yum downgrade指定软件包名
运行以上两个命令后,在重新安装curl-devel就没报错了。
在yum命令后面加入忽略参数:--setopt=protected_multilib=false
例如 yum install curl-devel --setopt=protected_multilib=false
重新执行make prefix=/usr/local/git all 进行编译往下走即可