Go環(huán)境變量配置,及GOROOT、GOPATH的區(qū)別小結(jié)
一、安裝Go
go下載地址:
windows下載安裝,有兩種方式。解壓和直接安裝
方式一:直接下載安裝包。以.msi結(jié)尾的文件。例如:
下載后,雙擊后一直點下一步即可安裝成功。
方式二:下載壓縮包文件,直接解壓。解壓后配置環(huán)境變量即可。例如:
下載完成,放到自己電腦的目錄里面,然后解壓,加壓后得到如下文件:
二、配置Go環(huán)境變量
右擊電腦 -> 屬性 -> 高級系統(tǒng)設(shè)置 -> 環(huán)境變量。打開環(huán)境變量設(shè)置窗口
增加:增加兩個環(huán)境變量:GOROOT、GOPATH
GOROOT:GO的安裝目錄,相當(dāng)于java中的jdk
GOPATH:GO的項目工作目錄,以后開發(fā)的代碼就寫到這個文件夾中。
配置GOROOT:
GOPATH和GOROOT的配置略有不同,我建議配置兩個GOPATH目錄,第一個用于放 Go 語言的第三方包,第二個用于放自己的開發(fā)代碼。我們來新建GOPATH。點擊系統(tǒng)變量下的新建,在變量名一欄輸入GOPATH,在變量值一欄輸入任意兩個目錄,中間用英文分號隔開。
配置GOPATH
然后將新建的GOROOT配置到 Path 這個環(huán)境變量中去,在系統(tǒng)變量中找到 Path,點擊編輯->新建,輸入%GOROOT%\bin,點擊確定。并將所有母窗口的確定全部點下,確保環(huán)境變量生效。
這樣就配置完了,一路點擊確定,直到桌面;
檢查是否配置成功。
windows+R 輸入 cmd 打開終端,輸入go version,如果輸出如下圖所示,則安裝成功。
#查看Go版本 go version #查看Go環(huán)境變量 go env
配置GO111MODULE、GOPROXY、GOSUMDB
GO111MODULE:為啥是111呢,這是沖go的1.11版本增加的一個功能。用于管理第三方包的,如果這個開啟的話,gopath這個變量基本上就用不到了。
Go默認(rèn)的GOPROXY的值是:GOPROXY=https://proxy.golang.org,direct。這個goproxy在使用go get安裝第三方庫的時候會報錯,導(dǎo)致無法下載成功,所以必須要修改一下。
比如改為:https://goproxy.io,direct (七牛鏡像)
或 https://mirrors.aliyun.com/goproxy(阿里云鏡像)
配置go變量的一些命令:
#開啟mod模式(項目管理需要用到) go env -w GO111MODULE=on #重新設(shè)置成七牛鏡像源(推薦)或阿里鏡像源(用原有的會比較慢) go env -w GOPROXY=https://goproxy.cn,direct go env -w GOPROXY=https://mirrors.aliyun.com/goproxy #關(guān)閉包的MD5校驗 go env -w GOSUMDB=off #查看環(huán)境變量 go env
三、GoRoot
GOROOT是go的安裝路徑。GOROOT目錄下有bin、doc、src等。如下圖:
四、GoPath
GOPATH:是開發(fā)的工作目錄。用于保存編譯后的二進(jìn)制文件。go get命令和go install命令會下載go的代碼到GOPATH中。
使用GOPATH時,項目中import引用的第三方包,首先會從GOROOT/src下搜索,如果搜索不到,會到GOPATH/src目錄下搜索。
舉個例子吧:
比如go項目中,應(yīng)用了如下第三方包:
import "Go-Player/src/chapter17/models"
第一步:Go會先去GOROOT/src目錄中查找,很顯然它不是標(biāo)準(zhǔn)庫的包,沒找到。
第二步:繼續(xù)在GOPATH/src目錄去找,準(zhǔn)確說是GOPATH/src/Go-Player/src/chapter17/models這個目錄。如果該目錄不存在,會報錯找不到package。
在使用GOPATH管理項目時,需要按照GO尋找package的規(guī)范來合理地保存和組織Go代碼。
五、go-mod
開啟GO111MODULE時,即GO111MODULE=on,再項目中引用第三方包時,仍然使用GOPATH的方式進(jìn)行引用,這時在引用時會報錯。
GO111MODULE 有三個值:off, on和auto(默認(rèn)值)。
GO111MODULE=off,go命令行將不會支持module功能,尋找依賴包的方式將會沿用舊版本那種通過vendor目錄或者GOPATH模式來查找。
GO111MODULE=on,go命令行會使用modules,而一點也不會去GOPATH目錄下查找。
GO111MODULE=auto,默認(rèn)值,go命令行將會根據(jù)當(dāng)前目錄來決定是否啟用module功能。
這種情況下可以分為兩種情形:
當(dāng)前目錄在GOPATH/src之外且該目錄包含go.mod文件,即使用go mod對項目的第三方依賴進(jìn)行管理,不再使用gopath的方式
當(dāng)前文件在包含go.mod文件的目錄下面。
當(dāng)modules 功能啟用時,依賴包的存放位置變更為$GOPATH/pkg,允許同一個package多個版本并存,且多個項目可以共享緩存的 module。
到此這篇關(guān)于Go環(huán)境變量配置,及GOROOT、GOPATH的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)Go環(huán)境變量配置 GOROOT GOPATH內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何在golang中使用shopspring/decimal來處理精度問題
本文主要介紹了如何在golang中使用shopspring/decimal來處理精度問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04go mayfly開源項目代碼結(jié)構(gòu)設(shè)計
這篇文章主要為大家介紹了go mayfly開源項目代碼結(jié)構(gòu)設(shè)計詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11