CentOS7环境下如何查询自托管GitLab使用的Git版本及路径
问题解答
1. GitLab实际使用的Git版本确认
是,GitLab当前实际调用的就是/opt/gitlab/embedded/bin/git路径下的2.29.0版本,判断依据如下:
- omnibus 方式安装的自托管 GitLab 默认会内置所有依赖组件,不会依赖系统级安装的 Git,内置依赖的二进制默认都放在
/opt/gitlab/embedded/bin/路径下 - 你已经在
gitlab.yml配置文件中明确指定了 Git 的调用绝对路径为/opt/gitlab/embedded/bin/git,直接执行该路径的二进制返回的版本2.29.0,和 GitLab 后台「Admin area -> Overview -> Gitaly Servers」页面显示的Git版本完全匹配,Gitaly 页面展示的版本就是 GitLab 实际运行时调用的 Git 版本,是最权威的判断依据 - 系统执行
git --version返回2.8.0是因为当前登录用户的 PATH 环境变量中,/usr/local/git/bin的优先级高于/opt/gitlab/embedded/bin,属于当前用户的 shell 调用优先级逻辑,和 GitLab 的调用逻辑无关,GitLab 会直接读取配置中的绝对路径调用 Git,不会依赖当前用户的 PATH 配置。
2. 冗余Git版本删除建议
可以删除 yum 安装的1.8.3版本和手动编译安装的2.8.0版本,这两个版本都不会被 GitLab 调用,删除不会影响 GitLab 运行,操作前注意以下事项即可:
- 提前确认服务器上是否存在其他非 GitLab 的业务、脚本、定时任务依赖系统级 Git:如果有服务直接调用
git命令且未写绝对路径,删除后会导致相关业务报错,确认无此类依赖后再执行删除操作 - 删除 yum 安装的 Git 直接执行
yum remove git即可,只会删除/usr/bin/git对应的1.8.3版本,不会修改其他路径的文件 - 删除手动编译的2.8.0版本直接执行
rm -rf /usr/local/git/即可,删除后执行hash -r清空当前 shell 的命令缓存,再执行git --version验证删除结果即可 - 额外提示:当前 GitLab 内置的 Git 版本为2.29.0,尚未达到升级要求的2.31.x标准,后续升级 GitLab 的 omnibus 安装包时,官方包会自动将内置 Git 升级至符合要求的版本,无需手动修改系统级 Git 版本。
内容的提问来源于stack exchange,提问作者user2014521
相关产品推荐
相关产品推荐

