这个故事的发生:
使用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
所以,就更换这个版本来编译安装了,也就成功解决问题了
经过这个问题的解决,以后遇到问题,也可以用这样的思路去解决问题了