Linux系统中安装Git(详细教程)

在Linux系统中安装Git,可以通过多种方式来实现,主要包括使用包管理器安装和从源代码编译安装。以下是详细的安装步骤:

一、使用包管理器安装(不建议该方式)

大多数Linux发行版都提供了包管理器,如Debian/Ubuntu的apt、CentOS/RHEL的yum/dnf等,通过这些包管理器可以方便地安装Git。

1. Debian/Ubuntu及其衍生版

打开终端,执行以下命令:

bash 复制代码
sudo apt update 
sudo apt install git

这将更新系统的包索引,并安装Git及其依赖项。

2. CentOS/RHEL及其衍生版

对于较新版本的CentOS(如CentOS 8及以上)和RHEL,可以使用dnf包管理器(CentOS 7及以下版本使用yum):

bash 复制代码
sudo dnf install git # CentOS 8及以上 
# 或者 
sudo yum install git # CentOS 7及以下

二、从源代码编译安装

如果需要安装特定版本的Git或者进行自定义配置,可以从源代码编译安装。

1. 下载Git源代码

访问Git官网或者其镜像站点下载Git的源代码包。也可以使用wget命令直接从命令行下载:

请将*替换为具体的版本号。

bash 复制代码
wget https://www.kernel.org/pub/software/scm/git/git-*.tar.gz

或者到官网下载

2. 解压源代码包

将下载的源代码包解压到指定目录:

bash 复制代码
tar -zxvf git-*.tar.gz 
cd git-*
3. 安装编译依赖

使用包管理器安装编译Git所需的依赖项。具体依赖项可能因Linux发行版而异,但通常包括curl、expat、gettext、openssl、zlib等库的开发文件以及gcc编译器。

例如,在Debian/Ubuntu上:

bash 复制代码
sudo apt install libcurl4-openssl-dev libexpat1-dev gettext libz-dev libssl-dev gcc

在CentOS/RHEL上:

bash 复制代码
sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc

4. 编译和安装Git

在解压后的Git源代码目录中,执行以下命令进行编译和安装:

bash 复制代码
make prefix=/usr/local/git all 
sudo make prefix=/usr/local/git install

这里的/usr/local/git是Git的安装目录,可以根据需要修改。

注意:如果报错http.c:655:28: error: 'CURLOPT_PROXYHEADER' undeclared (first use in this function) curl_easy_setopt(result, CURLOPT_PROXYHEADER,

/mydata/git是安装包的目录

bash 复制代码
whereis curl; ./configure --prefix=/mydata/git --with-curl=/usr/bin/curl; make; make install;
5. 配置环境变量

编辑/etc/profile文件或用户的~/.bashrc文件,添加Git的安装目录到PATH环境变量中:

bash 复制代码
export GIT_HOME=/usr/local/git 
export PATH=$GIT_HOME/bin:$PATH

然后,执行source /etc/profile或source ~/.bashrc使配置生效。

bash 复制代码
source /etc/profile
6. 验证安装

通过执行git --version命令来验证Git是否已成功安装,并检查其版本号。

总结

以上就是Linux系统中安装Git的两种方法:使用包管理器安装和从源代码编译安装。根据实际需要选择适合的安装方式。对于大多数用户来说,使用包管理器安装已经足够方便和快捷。如果需要安装特定版本或进行自定义配置,则可以考虑从源代码编译安装。

相关推荐
琥珀.7 小时前
mysql中json数组转列表查询
linux·运维·服务器
dawnsky.liu7 小时前
在 RHEL 中使用 goose 实现远程主机管理
linux·运维·ai
Linux运维技术栈9 小时前
CVE-2026-91403 高危漏洞修复:Rocky Linux 9 多版本 JDK 环境清理实操
java·linux·运维
slongzhang_11 小时前
linux 递归删除源码文件|递归删除目录下 *.js,但排除 *.min.js
linux·开发语言·javascript
叼烟扛炮11 小时前
Linux 学习笔记(三十三):线程互斥——互斥锁(Mutex)与死锁
linux·运维·服务器·笔记·学习·1024程序员节
无足鸟ICT11 小时前
【RHCA+】who命令(查看已登陆用户)
linux·运维·服务器
Escalating_xu11 小时前
【Linux 网络编程】应用层协议 HTTP(下):Header、连接管理与 C++ HTTP 服务器
linux·服务器·网络
GeW14 小时前
新质生产力路线图落地,Linux运维与数据库架构师的机会清单
linux
Brilliantwxx14 小时前
【Linux】 文件访问与路径解析:目录、文件名、dentry、路径缓冲与 dcache 全解析
linux·运维·服务器·开发语言·spring
father_122714 小时前
Greenplum 集群故障恢复与主备同步机制实战
linux·网络·greenplum