使用 IUS 仓库进行升级(推荐方案)
对于大多数用户而言,通过第三方软件仓库 IUS (Inline with Upstream Stable) 进行升级是最简单、最安全且最易于维护的方法,IUS 项目旨在为 Red Hat 系的发行版(如 CentOS)提供最新版本的流行软件,同时保持与系统原有组件的兼容性。

操作步骤如下:
-
安装 EPEL 仓库 IUS 仓库依赖于 EPEL (Extra Packages for Enterprise Linux),如果您的系统中尚未安装 EPEL,请先执行以下命令:
yum install -y epel-release
-
安装 IUS 仓库 下载并安装 IUS 官方提供的 RPM 包,以将其仓库配置添加到系统中:
yum install -y https://repo.ius.io/ius-release-el6.rpm
-
移除旧版 Git(如果已安装) 为了避免版本冲突,建议先卸载系统通过官方源安装的旧版 Git:
yum remove git
-
安装新版 Git IUS 为新版 Git 提供了专门的包名,通常以
git2u开头,以示区别,安装git2u-all即可获得完整的 Git 工具集:yum install -y git2u-all
-
验证安装 安装完成后,通过以下命令检查 Git 版本,确认升级是否成功:
git --version
您应该会看到一个远高于 1.x 的版本号,
git version 2.16.6。
此方法的优势在于,软件包的管理完全交给了 yum,未来的更新和卸载都非常方便,只需执行 yum update git2u-all 或 yum remove git2u-all 即可。

从源码编译安装(高级方案)
当您需要安装 IUS 仓库未提供的特定 Git 版本,或者希望对 Git 的编译选项进行自定义配置时,从源码编译是最佳选择,此方法提供了最大的灵活性,但对操作者的技术水平要求也更高。
操作步骤如下:
-
安装编译依赖 编译 Git 需要一系列开发工具和库,首先安装这些必要的依赖项:
yum groupinstall -y "Development Tools" yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
-
下载 Git 源码 访问 Git 官方发布页面或直接使用
wget命令下载所需版本的源码压缩包,下载 Git 2.30.0 版本:wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.30.0.tar.gz
-
解压并进入目录
tar -zxf git-2.30.0.tar.gz cd git-2.30.0
-
配置编译选项 运行
configure脚本,建议将 Git 安装到/usr/local/git目录下,这样可以避免与系统自带的软件产生冲突,也便于管理。./configure --prefix=/usr/local/git
-
编译与安装 依次执行
make和make install命令,这个过程会消耗一些时间,具体取决于您的服务器性能。make make install
-
配置环境变量 为了让系统能够直接识别新安装的 Git 命令,需要将其
bin目录添加到PATH环境变量中,推荐创建一个新的配置文件:
echo 'export PATH=/usr/local/git/bin:$PATH' > /etc/profile.d/git.sh source /etc/profile.d/git.sh
-
验证安装 同样,使用
git --version命令来确认版本信息。
两种方法对比
为了更直观地理解两种方案的差异,下表对它们进行了全面的比较:
| 特性 | IUS 仓库方法 | 源码编译方法 |
|---|---|---|
| 易用性 | 非常简单,仅需几条 yum 命令 |
复杂,需手动处理依赖、编译和配置 |
| 灵活性 | 较低,只能选择仓库提供的版本 | 极高,可安装任意版本,自定义编译参数 |
| 维护性 | 优秀,可通过 yum 统一更新和卸载 |
较差,更新需重复编译过程,卸载需手动清理 |
| 风险 | 风险低,依赖 IUS 社区维护 | 风险相对较高,可能出现编译错误或依赖问题 |
| 推荐用户 | 绝大多数生产环境和普通用户 | 需要特定版本或高级定制功能的高级用户、开发者 |
对于追求稳定、高效运维的 CentOS 6.5 用户,强烈推荐使用 IUS 仓库方法来升级 Git,它完美平衡了易用性和可靠性,是处理此类问题的最佳实践,而源码编译则为有特殊需求的用户提供了强大的定制能力,但在选择此路径前,请务必确保您已准备好应对可能出现的各种技术挑战。
相关问答 FAQs
Q1: 升级后,系统中的旧版 Git 会被完全移除吗?
A: 这取决于您选择的升级方法。
- IUS 仓库方法:当您执行
yum remove git时,旧的 Git 软件包及其关联文件会被yum包管理器彻底卸载,之后安装的git2u是一个全新的软件包,所以旧版本不会残留。 - 源码编译方法:此方法通常不会自动移除旧版 Git(如果它是通过
yum安装的),新编译的 Git 默认安装在/usr/local/git目录下,系统能够使用哪个版本的 Git,完全取决于PATH环境变量的优先级,通过将/usr/local/git/bin置于PATH的最前面,系统会优先调用新版 Git,而旧版 Git 依然存在于原路径(如/usr/bin/git),只是不会被默认调用。
Q2: 在源码编译过程中,如果提示错误信息,configure: error: no curses terminfo library found,该如何解决?
A: 这个错误表明系统缺少编译 Git 所必需的某个开发库。curses 库通常由 ncurses-devel 软件包提供,解决这类问题的通用思路是:
- 确定缺失的库:从错误信息中识别出库名,这里是
curses。 - 查找对应的软件包:使用
yum provides "*/curses.h"或类似命令(yum provides "*/term.h")来查找哪个软件包提供了所需的头文件,对于curses,通常会定位到ncurses-devel。 - 安装软件包:使用
yum install -y ncurses-devel命令安装该开发包。 - 重新运行配置:安装完成后,返回到 Git 源码目录,重新执行
./configure ...命令,然后继续编译流程。 这个方法同样适用于解决其他缺失-devel包(如zlib-devel,openssl-devel等)导致的编译错误。