Centos Git 升级遇到的一些麻烦事

1 Overview

起因是这样的,因为需要用 go mod,但是开发机的 Git 版本过旧了,导致 go mod 在执行一些 git 命令的时候会有一些问题。

# git version
git version 1.8.3.1

发现 git 都更新到大版本 2 开头了…所以升级吧。

2 操作

内网的仓库里,git 的版本还很低。因为通过 yum update git 发现内网仓库的 git 还是 1.8.3.1,太低了,本来想通过 rpm 包来安装,发现 git 的依赖好六七八个,遂放弃。最后还是得靠外部仓库,当然如果需要代理问题的话,还需要自行解决。

首先要观察仓库列表,仓库倒是很多,但是里面的软件都不太新。

yum repostlist all

决定重装一把,那就先删掉旧的 git

yum remove git

清理缓存,并重新构建缓存。

yum clean all
yum make cache

推荐配置阿里的镜像源

具体的配置方法,可以参考阿里镜像源的配置文档,流程大概如下。

# 下载 repo 文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 放到 /etc/yum.repos.d/文件夹

解释一下 repo 文件的结构。

[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
# 这个是仓库的开关
enabled=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

然后 yum 还有个 vars 文件夹,是可以作为公有变量来设置的。关于这个变量的设置,可以参考这篇文章

更新完仓库的配置后再执行一些 yum update && yum make cache 就可以看到从阿里云的镜像源里获得的新的 Git 软件包。

3 总结

之前对 yum 了解太少了,其实跟 apt-get 很像,如果软件太旧了,需要更新,就修改仓库列表,增加一些外部更新比较频繁的仓库,其次就是如果需要使用代理,yumapt-get 都有类似 conf 这样的配置文件可以单独配置。

最后,开头说的 go mod 的问题,通过升级 git 解决了,原因是 go mod 本质做了很多 go get,而 go get 又做了很多 git 相关的操作,所以 git 版本过低,有时候确实会引起让人很恼火的 go mod 的问题。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章