Centos 下面git版本升级

401 阅读1分钟

查看当前版本

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

编译过程可能遇到的坑

image.png

这是没有libcurl的库造成的,执行yum install -y curl-devel 进行安装,可能存在下面的提示

image.png

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  语句去执行

image.png

执行完成后,发现还是没有安装上需要的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

image.png

image.png

重新执行make prefix=/usr/local/git all 进行编译往下走即可