[TOC] #### 1. 前言 --- 本文使用的操作系統: | 名稱 | 描述 | 文章 | | ------------ | ------------ | ------------ | | Oracle VM VirtualBox | 虛擬機軟件 | [VirtualBox 使用介紹](http://www.837wan.com/index/627.html) | | CentOS-7-x86_64-Minimal-2009.iso | CentOS 7.9 最小化安裝鏡像文件 | [VirtualBox 安裝 CentOS 7](http://www.837wan.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 ```