当前位置: 首页 > news >正文

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 拉取代码问题也随之解决。

http://www.jsqmd.com/news/690519/

相关文章:

  • 2026年高精度渐开线花键环规精选厂家推荐 - 品牌宣传支持者
  • 大模型应用开发全攻略:从Prompt工程到私有知识库,普通人也能玩转AI生态!
  • 管理SELinux安全性
  • 基于深度学习的单目深度估计 yolov8目标检测+距离识别计算
  • 别再乱设DataX的channel和bps了!一份讲透速度控制优先级与优化配置的指南
  • 微积分核心概念与应用:从基础到机器学习实践
  • 金刚石NV中心量子编译器优化技术与应用
  • 机器学习项目检查清单:从数据到部署的全流程质量保障
  • 硬件工程师别慌!一文搞懂BCI测试:从汽车电子到军标461的实战避坑指南
  • 【实战项目】从零开发Markdown转Word可视化工具,全程代码可直接运行(python)
  • 别再只调SCL频率了!VL6180软件I2C驱动移植到51单片机的完整避坑指南(含电平转换与_nop_时序详解)
  • C语言进程管理与内存管理深度解析
  • 天机学堂项目总结(day11~day12)
  • Android 11 状态栏时钟显示秒数,一个隐藏的开发者选项(附源码分析)
  • 从实验板到实战:手把手教你用锁相环PLL搭建一个简易FM对讲机(附Multisim仿真文件)
  • 2026华中杯B题反射的艺术一等奖版成品论文
  • 别再拼接字符串了!QT开发中用好QString::arg(),让日志和UI显示更清爽(附实战代码)
  • 封神进阶!Python + SQL 高级玩法,批量操作+异常处理直接拉满
  • Windows程序隐身术:RunHiddenConsole让你的控制台应用优雅消失
  • IEC61850 GOOSE报文实战解析:用Wireshark抓包看透变电站的‘心跳’
  • 软件工程与计算机科学中多个核心知识领域,包括**面向对象技术、网络与信息安全、程序设计语言原理**三大板块
  • AI开发个CMDB平台自用
  • 别再只丢个阻抗要求给板厂了!手把手教你用Allegro 17.4自己算叠层和线宽(附PP/Core选型清单)
  • IgH EtherCAT 从入门到精通:第 19 章 主站状态机(FSM)深度解析
  • 《条件判断结构》
  • 千问3.5-2B效果展示:建筑设计图楼层识别+承重墙标注+消防通道合规性初判
  • 从CLIP到InstructBLIP:主流视觉语言模型(VLM)核心架构演进与实战解析
  • 从降噪耳机到汽车音响:盘点ADI音频DSP(ADAU1787/21489)的5个真实应用场景与选型指南
  • 告别超调!STM32F4温控项目中,我是这样用PID口诀调出完美曲线的(含MATLAB分析)
  • Vivado仿真太慢?试试这招:用条件编译区分仿真与上板代码(避坑指南)