[TOC] #### 1. 前言 --- 本文使用的操作系统: | 名称 | 描述 | 文章 | | ------------ | ------------ | ------------ | | Oracle VM VirtualBox | 虚拟机软件 | [VirtualBox 使用介绍](https://www.itqaq.com/index/627.html) | | CentOS-7-x86_64-Minimal-2009.iso | CentOS 7.9 最小化安装镜像文件 | [VirtualBox 安装 CentOS 7](https://www.itqaq.com/index/628.html) | Git 是当前最主流的代码管理工具,对于大多数发行版的 Linux 系统,都可以通过系统自带的包管理工具进行安装 通过包管理工具安装的 Git 一般都不是最新版,所以在某些特定情况下需要自行下载源码包进行编译安装指定版本 centos 系统可以使用 yum 安装 git,安装非常简单,但是 git 的版本比较低 ```bash # 安装 git yum install git -y # 查看 git 版本 git --version # git version 1.8.3.1 ``` #### 2. 编译安装 --- ##### a. 选择 git 版本 [点击进入官网查看 Linux 版本的 Git 下载方式](https://git-scm.com/download/linux),也可以进入 [Git 的代码仓库的标签](https://github.com/git/git/tags) 中查看所有版本 复制指定版本的源码包链接地址,本文使用当前最新版本 2.43.0,链接地址如下所示 ``` https://www.kernel.org/pub/software/scm/git/git-2.43.0.tar.gz ``` ![](https://img.itqaq.com/art/content/bc6e2e289918a10aa6f5078398784649.png) ##### b. 下载源码包 安装 wget 命令,用于下载 git 源码包 ```bash yum install wget -y ``` 下载 git 源码包并解压缩,准备编译安装 ```bash # 我们将源码包存放到该目录 cd /usr/local/src # 下载源码包 wget https://www.kernel.org/pub/software/scm/git/git-2.43.0.tar.gz --no-check-certificate # 源码包解压缩 tar -zxf git-2.43.0.tar.gz # 进入源码目录 cd git-2.43.0 ``` ##### c. 编译 git 源码 编译 git 源码,指定安装目录 ```bash make prefix=/usr/local/git all ``` 你可能会遇到以下两个错误,curl-config、cc 这两个命令未找到,使用 yum 安装即可 ```bash yum install gcc curl-devel -y ``` ```bash [root@localhost git-2.43.0]# make prefix=/usr/local/git all GIT_VERSION = 2.43.0 make: curl-config:命令未找到 * new build flags GEN command-list.h GEN config-list.h GEN hook-list.h CC oss-fuzz/fuzz-commit-graph.o /bin/sh: cc: 未找到命令 make: *** [oss-fuzz/fuzz-commit-graph.o] 错误 127 ``` 你可能会遇到 openssl 错误,使用 yum 安装即可 ```bash yum install openssl-devel -y ``` ```bash [root@localhost git-2.43.0]# make prefix=/usr/local/git all CC oss-fuzz/fuzz-commit-graph.o In file included from oss-fuzz/fuzz-commit-graph.c:1:0: ./git-compat-util.h:399:25: 致命错误:openssl/ssl.h:没有那个文件或目录 #include <openssl/ssl.h> ^ 编译中断。 make: *** [oss-fuzz/fuzz-commit-graph.o] 错误 1 ``` 你可能会遇到 expat 错误,使用 yum 安装即可 ```bash yum install expat-devel -y ``` ```bash [root@localhost git-2.43.0]# make prefix=/usr/local/git all ... ... http-push.c:27:19: 致命错误:expat.h:没有那个文件或目录 #include <expat.h> ^ 编译中断。 make: *** [http-push.o] 错误 1 ``` 当编译命令执行成功后,运行以下命令将 git 安装到指定路径 ```bash make prefix=/usr/local/git install ``` ##### d. 配置环境变量 ```bash echo 'export PATH=$PATH:/usr/local/git/bin' >> ~/.bashrc source ~/.bashrc ``` #### 3. 安装总结 --- 环境准备 ```bash # 安装 wget 命令 yum install wget -y # 安装编译 git 需要的依赖包 yum install gcc curl-devel openssl-devel expat-devel -y ``` 编译安装 ```bash # 源码包存放目录 cd /usr/local/src # 下载源码包 wget https://www.kernel.org/pub/software/scm/git/git-2.43.0.tar.gz --no-check-certificate # 源码包解压缩 tar -zxf git-2.43.0.tar.gz # 进入源码目录 cd git-2.43.0 # 编译 make prefix=/usr/local/git all # 安装 make prefix=/usr/local/git install ``` 配置环境变量 ```bash echo 'export PATH=$PATH:/usr/local/git/bin' >> ~/.bashrc source ~/.bashrc ```