CentOS7源码编译安装新版Git

这个故事的发生:

使用vs code远程CentOS开发,提示Git版本需要>=2.0版本;
众所周知CentOS上yum源安装的Git最新版还是1.8版本;
要安装2.0+版本的,只能通过源码编译安装了;
然后查找到安装资料,按着一步步操作,下载,解压,都算正常;
之后就是编译,报错,找资料修改,再编译,还报错;
再找资料修改,编译,还报错,一直这样...
大半天就这样过去,找了很多资料,都未能解决我的问题;
都想要放弃了,直到晚上11点,一个想到的尝试,终于解决了。

写了那么长牢骚,可以跳过,直接看下文,希望我的经历能解决到你所遇到的同样问题。

环境说明

本文档的验证基于 CentOS-7.9 + Git-2.25.2 版本,解决思路可参考。

解决的问题

目的就是要在CentOS7上安装2.0以上版本的Git,达到Git更新的版本。

Git资源

源码包地址:

https://mirrors.edge.kernel.org/pub/software/scm/git/

git-2.25.2 版本地址:

https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.25.2.tar.xz

这个地址的资源,网络好慢,最好下载xz的压缩包,体积更小,下载会快些。

也可以下载其它较新的版本,不要贪最新的版本,我就是贪最新的版本,所以编译不成功,也找不到问题有用的资料,最后换成了 git-2.25.2 版本,才解决了。

安装过程

root用户登录CentOS,少烦恼很多。所以下面操作过程都是root用户环境。

1、切换到本地源码目录


cd /usr/local/src

2、使用wget下载Git源码,选xz的压缩包


wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.25.2.tar.xz

3、使用tar解压源码


# 解压源码

tar -xJf git-2.25.2.tar.xz

4、编译之前需要先安装编译所需要的的依赖


yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

5、卸载旧版Git


yum -y remove git

6、查看目录进入源码目录


ls

cd git-2.25.2

7、获取openssl路径


which openssl

# 我的输出结果是 /usr/local/bin/openssl

8、编译前的配置,使用上面得到的路径


# 替换你自己的路径

./configure --with-openssl=/usr/local/bin/openssl

9、编译安装,这一步没问题,那都万事大吉啦


# 编译

make prefix=/usr/local/git all

# 安装

make prefix=/usr/local/git install

10、修改全局环境变量


# 编辑配置文件

vi /etc/profile

# 找到 PATH 变量,在末尾追加 :/usr/local/git/bin

export PATH=$PATH/bin:/usr/local/git/bin

# 保存退出

11、重新加载环境


source /etc/profile

12、查看Git版本


# 查看版本

git version

# 正常会输出 git version 2.25.2

看到Git的版本号,大功告成啦。

最后回想

  • 刚开始,使用了最新版本git-2.37.2

  • 编译不成,也找不到解决办法

  • 后面看了Ubuntu上安装的最新版本是git-2.25.1

  • 所以,就更换这个版本来编译安装了,也就成功解决问题了

  • 经过这个问题的解决,以后遇到问题,也可以用这样的思路去解决问题了

你可能感兴趣的:(CentOS7源码编译安装新版Git)