news 2026/4/24 3:23:16

CentOS 7 升级 Git:从 1.8.3.1 升级到 2.31.6

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CentOS 7 升级 Git:从 1.8.3.1 升级到 2.31.6

CentOS 7 升级 Git:从 1.8.3.1 升级到 2.31.6

在使用GitLab Runner执行 CI 任务时,出现了如下错误:

Running with gitlab-runner 18.9.0 Using Shell executor... Fetching changes with git depth set to 20... Reinitialized existing Git repository fatal: git fetch-pack: expected shallow list fatal: The remote end hung up unexpectedly ERROR: Job failed: exit status 1

该错误通常出现在Git 版本过旧 + shallow fetch(浅克隆)的情况下。

检查服务器环境:

cat/etc/os-releasegit--versionuname-a

输出如下:

CentOS Linux 7 (Core) git version 1.8.3.1 Linux 3.10.0-1160...

CentOS 7 官方仓库中的 Git 版本是1.8.3.1,发布时间是2014 年,已经非常陈旧。
GitLab Runner、GitHub Actions 等现代 CI 系统普遍需要Git 2.x才能稳定运行。

因此需要升级 Git。


一、为什么不直接用 yum 升级

CentOS 7 官方仓库提供的 Git 版本仍然是:

git 1.8.3.1

即使执行:

yum updategit

也不会升级到新版本。

因此有三种方式:

方法推荐程度
IUS 仓库
SCL 软件集合一般
源码编译安装推荐

本文使用源码编译安装,原因:

  • 不污染系统仓库
  • 可以选择稳定版本
  • 不影响系统自带/usr/bin/git
  • 方便回退

二、安装编译依赖

首先安装 Git 编译所需的依赖:

yuminstall-y\curl-devel\expat-devel\gettext-devel\openssl-devel\zlib-devel\perl-ExtUtils-MakeMaker\gcc\make\wget\tar

如果系统没有编译工具链,可以安装开发工具组:

yum groupinstall-y"Development Tools"

三、下载 Git 源码

/usr/local/src目录下载源码:

cd/usr/local/srcwgethttps://www.kernel.org/pub/software/scm/git/git-2.31.6.tar.gztar-xzfgit-2.31.6.tar.gzcdgit-2.31.6

说明:

  • Git 最新版本虽然更高,但部分新版本在CentOS 7 的 glibc 环境下编译会出现sys/random.h等问题。
  • 2.31.x 是一个兼容性较好的版本。
  • 如果wget下载不下来,可以现在能翻墙的机器上下载了之后再传递到服务器上面

四、编译并安装 Git

按照 Git 官方推荐流程:

cdgit-2.31.6makeprefix=/usr/local/git allmakeprefix=/usr/local/gitinstall

安装完成后,Git 将位于:

/usr/local/git/bin/git

五、配置系统 PATH

为了让系统优先使用新版本 Git,需要修改 PATH。

创建 profile 文件:

cat>/etc/profile.d/git.sh<<'EOF' export PATH=/usr/local/git/bin:$PATH EOFchmod+x /etc/profile.d/git.shsource/etc/profile.d/git.shgit--versionwhichgit

重新加载环境变量:

source/etc/profile.d/git.sh

验证 Git 版本:

git--versionwhichgit

示例输出:

git version 2.31.6 /usr/local/git/bin/git

总结

CentOS 7 默认 Git 版本1.8.3.1已经过于陈旧,在现代 CI/CD 环境中容易出现兼容问题。

升级步骤:

  1. 安装编译依赖
  2. 下载 Git 源码
  3. configure + make
  4. 修改 PATH
  5. 验证 GitLab Runner 环境

最终升级结果:

git version 1.8.3.1 → git version 2.31.6

CI 拉取代码问题也随之解决。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 3:20:17

行为验证码拦截机器攻击,背后的原理原来是这样

行为验证码作为当前互联网安全防护的重要手段&#xff0c;已在账号登录、表单提交等场景中得到广泛应用。这类验证方式通过捕捉用户交互行为特征&#xff0c;构建起人机识别的有效防线&#xff0c;能够在保障用户体验的同时&#xff0c;拦截恶意攻击、暴力破解等黑产行为。行为…

作者头像 李华
网站建设 2026/4/24 3:18:43

全网网安资源合集!全部站点一次性汇总,速看!删了就没了

黑客网站大全&#xff01;都在这了&#xff01;速看被删就没了 我们学习网络安全&#xff0c;很多学习路线都有提到多逛论坛&#xff0c;阅读他人的技术分析帖&#xff0c;学习其挖洞思路和技巧。但是往往对于初学者来说&#xff0c;不知道去哪里寻找技术分析帖&#xff0c;也…

作者头像 李华
网站建设 2026/4/24 3:14:57

不中断业务!手把手教你用奇安信网神防火墙透明桥模式无缝接入现有网络

零感知部署&#xff1a;奇安信网神防火墙透明桥模式实战指南 当企业网络已经稳定运行多年&#xff0c;突然被告知需要新增一台防火墙时&#xff0c;大多数运维工程师的第一反应都是头皮发麻——这意味着要重新规划IP地址、调整路由策略、甚至可能面临业务中断的风险。但事实上&…

作者头像 李华
网站建设 2026/4/24 3:12:31

管理SELinux安全性

1.SELinux如何保护资源&#xff08;1&#xff09;SElinux可允许或拒绝访问文件和其他资源&#xff0c;且精准度比用户权限大幅提高SELinux 由若干组策略组成&#xff0c;准确声明了对于应用使用的每个可执行文件、配置文件和数据文件&#xff0c;哪些操作和访问是被允许的。这被…

作者头像 李华