文章目录
- CentOS 7 - 安装 Git
- 环境信息
- 准备
- GCC - C & C++ 编译器
- Wget - 非交互式网络下载器
- 安装
- 下载源码包
- 重新编译与安装
- 重新编译的过程可能遇到的错误
- 错误 1 - fatal error: openssl/ssl.h: No such file or directory
- 错误 2 - fatal error: curl/curl.h: No such file or directory
- 错误 3 - fatal error: expat.h: No such file or directory
- 安装完成
- 参考
CentOS 7 - 安装 Git
环境信息
操作系统
# cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)
# uname --kernel-release
3.10.0-1062.el7.x86_64
准备
如果当初你在安装 CentOS 7 的时候,采用的是最小安装方式,那么你可能需要安装这两个工具:GCC 和 Wget。
GCC - C & C++ 编译器
在安装 Git 之前,需要确认系统中是否已经安装 GCC。可以通过执行命令 gcc --version
查看版本信息,判断是否已经安装 GCC。
如果你的操作系统中没有预装 GCC,可以执行命令 yum install --assumeyes gcc
安装 GCC。
Wget - 非交互式网络下载器
我将使用 Wget 下载 Git 的源码包。当然,你也可以使用其他方式。
如果你打算采用这种方式,并且你的操作系统中没有安装这个工具,那么你可以执行命令 yum install --assumeyes wget
安装 Wget。
安装
在 Download for Linux and Unix 中,提供了不同 Linux 操作系统安装 Git 的方法:
由于 RHEL 及其衍生的操作系统中提供的 Git 版本较老,如果打算安装较新的 Git 版本,则需下载 tar 压缩包并从源码中构建,或者使用第三方仓库。
接下来,我将采用从源码构建的方式安装 Git。
下载源码包
根据 Download for Linux and Unix 中的提示,访问 https://mirrors.edge.kernel.org/pub/software/scm/git/,找到你想要下载的源码包,右击选择“复制链接地址”:
回到 CentOS 7 系统终端,使用命令 wget
下载 Git 源码包:
# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.27.0.tar.gz
注意:以上命令执行完成之后,所下载的文件被保存在当前工作目录中,使用命令 pwd
可以查看当前工作目录。
下载完成,解压下载的文件:
# tar -zxvf git-2.27.0.tar.gz
重新编译与安装
在 Git 的安装说明中提到,可以直接使用命令 make
和 make install
安装 Git,这将 Git 安装到 ~/bin/ 目录中(~ 是指当前登录用户的 Home 目录):
如果你需要个性化安装 Git,可以访问 https://github.com/git/git/blob/master/INSTALL 获取详细的信息。
此处,我采用最简单的方式安装 Git。进入解压得到的 Git 文件夹,依次执行命令 make
和 make install
即可。
重新编译的过程可能遇到的错误
在使用命令 make
重新编译 Git 的某些源文件时,你可能会遇到以下这些错误:
错误 1 - fatal error: openssl/ssl.h: No such file or directory
GIT_VERSION = 2.27.0
make: curl-config: Command not found
* new build flags
CC fuzz-commit-graph.o
In file included from commit-graph.h:4:0,
from fuzz-commit-graph.c:1:
git-compat-util.h:297:25: fatal error: openssl/ssl.h: No such file or directory
#include <openssl/ssl.h>
^
compilation terminated.
make: *** [fuzz-commit-graph.o] Error 1
解决方法:执行 yum install --assumeyes openssl-devel
命令安装即可。
错误 2 - fatal error: curl/curl.h: No such file or directory
... 省略部分信息
In file included from http.c:2:0:
http.h:6:23: fatal error: curl/curl.h: No such file or directory
#include <curl/curl.h>
^
compilation terminated.
make: *** [http.o] Error 1
解决方法:执行 yum install --assumeyes curl-devel
命令安装即可。
错误 3 - fatal error: expat.h: No such file or directory
... 省略部分信息
http-push.c:22:19: fatal error: expat.h: No such file or directory
#include <expat.h>
^
compilation terminated.
make: *** [http-push.o] Error 1
解决方法:执行 yum install --assumeyes expat-devel
命令安装即可。
安装完成
查看 Git 的安装目录,执行命令 ll ~/bin/
:
# ll ~/bin/
total 72508
-rwxr-xr-x. 130 root root 16047136 Jul 23 19:09 git
-rwxr-xr-x. 2 root root 162732 Jul 23 19:09 git-cvsserver
-rwxr-xr-x. 1 root root 353477 Jul 23 19:09 gitk
-rwxr-xr-x. 130 root root 16047136 Jul 23 19:09 git-receive-pack
-rwxr-xr-x. 2 root root 9534288 Jul 23 19:09 git-shell
-rwxr-xr-x. 130 root root 16047136 Jul 23 19:09 git-upload-archive
-rwxr-xr-x. 130 root root 16047136 Jul 23 19:09 git-upload-pack
查看 Git 版本信息:
# git --version
git version 2.27.0
参考
https://git-scm.com/download/linux
https://github.com/git/git/blob/master/INSTALL
fatal error: openssl/ssl.h: No such file or directory
http.h:6:23: fatal error:curl/curl.h:there is no this file/directory
fatal error: expat.h: No such file or directory