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
很像,如果軟件太舊了,需要更新,就修改倉庫列表,增加一些外部更新比較頻繁的倉庫,其次就是如果需要使用代理,yum
和 apt-get
都有類似 conf 這樣的配置文件可以單獨配置。
最後,開頭說的 go mod
的問題,通過升級 git
解決了,原因是 go mod
本質做了很多 go get
,而 go get
又做了很多 git
相關的操作,所以 git
版本過低,有時候確實會引起讓人很惱火的 go mod
的問題。