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 的問題。

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