Go lang,為並行而生的靜態語言,源於C語言又不拘泥於效能,高效卻不流於古板,Python靈活,略輸效能,Java嚴謹,稍遜風騷。君不見各大廠牌均紛紛使用Go lang對自己的高並行業務進行重構,原因無他,經濟下行的大背景之下,效能突出、效率拉滿的Go lang無疑是高並行場景下節約伺服器資源的一劑靈藥。
與時俱進,順應潮流,本次我們乘著市場的東風,在各大主流平臺(Win/Mac/Linux/Docker)安裝並搭建Go lang1.18的開發環境,短時間內做到能夠在任何一款開發機或者伺服器上輸出Go lang的全部功力,如臂使指,揮灑自如。
首先來到市場佔有率最高的Win11系統,前往Go lang官網 https://go.dev/dl/ 下載win平臺下的64位元安裝包:
Microsoft Windows
Windows 7 or later, Intel 64-bit processor
go1.18.5.windows-amd64.msi (130MB)
選擇安裝目錄後,直接點選安裝即可。
安裝完畢之後,首先輸入「win+R」,開啟終端。然後在裡面輸入命令:control system。在開啟的系統資訊介面中,選擇左側選單的「高階系統設定」。隨後在開啟的「系統屬性」視窗選擇下方的「環境變數」選項。最後在開啟的環境變數中,檢查系統是否將Go lang的安裝目錄"c:/go/bin"設定到了環境變數裡,如果已經設定了,在終端中鍵入命令:
go version
系統返回:
C:\Users\liuyue>go version
go version go1.18.5 windows/amd64
說明Go lang1.18版本已經在系統中安裝成功。
接著來到Mac系統,Mac系統一般會包含兩套架構,分別是:搭載Intel晶片的x86架構系統,和搭載M系列晶片的ARM架構系統。
首先開啟終端,鍵入如下命令:
uname -m
如果返回:
arm64
說明是ARM架構系統,反之:
x86
則是Intel晶片的x86架構系統。
前往Go lang官網 https://go.dev/dl/ ARM架構系統下載:
Apple macOS (ARM64)
macOS 11 or later, Apple 64-bit processor
go1.18.5.darwin-arm64.pkg (132MB)
X86架構系統下載:
Apple macOS (x86-64)
macOS 10.13 or later, Intel 64-bit processor
go1.18.5.darwin-amd64.pkg (138MB)
下載之後,雙擊進行安裝即可。
區別於Windows平臺,我們還可以使用更加靈活的方式安裝設定Go lang1.18,那就是鼎鼎有名的Homebrew。
Homebrew是一款自由及開放原始碼的軟體包管理系統,用以簡化macOS系統上的軟體安裝過程,最初由馬克斯·霍威爾寫成。因其可延伸性得到了一致好評,而在Ruby on Rails社群廣為人知。 Homebrew使用GitHub,通過使用者的貢獻擴大對軟體包的支援,同樣也支援Go lang生態環境。
首先安裝Homebrew:
/bin/zsh -c "$(curl -fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)」
隨後執行命令清除快取和更新版本:
brew cleanup && brew update
接著執行命令進行go lang1.18的安裝操作:
brew install go
接著會進行下載安裝操作:
brew install go
==> Downloading https://ghcr.io/v2/homebrew/core/go/manifests/1.18.5
Already downloaded: /Users/liuyue/Library/Caches/Homebrew/downloads/819fc08bdc0ecafc9713bdfd76a9e6901172c0b2c0cdde0dd482a0b37ba008fd--go-1.18.5.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/go/blobs/sha256:4f80cc29d711ddc5038f6b4684fe31674df01284aaa611480
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:4f80cc29d711ddc5038f6b4684fe3
######################################################################## 100.0%
==> Pouring go--1.18.5.arm64_monterey.bottle.tar.gz
???? /opt/homebrew/Cellar/go/1.18.5: 11,990 files, 596.2MB
==> Running `brew cleanup go`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
由於諸位可以理解的原因,這裡建議大家用學術的方式連線網際網路從而獲取更快的下載速度。
最後執行命令清理安裝包快取:
brew cleanup go
接著鍵入命令就可以檢視go lang具體的安裝目錄:
brew list go
/opt/homebrew/Cellar/go/1.18.5/bin/go
/opt/homebrew/Cellar/go/1.18.5/bin/gofmt
/opt/homebrew/Cellar/go/1.18.5/libexec/api/ (22 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/bin/ (2 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/doc/ (5 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/lib/ (3 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/misc/ (393 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/pkg/ (695 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/src/ (7786 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/test/ (3071 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/ (6 files)
在終端鍵入命令:
go version
系統返回:
➜ ~ go version
go version go1.18.5 darwin/arm64
這裡建議使用Homebrew來安裝Go lang,brew會根據當前系統架構來自動選擇不同系統架構的編譯版本來進行安裝。
首先刪除 /usr/local/go 目錄,根據官網說明,如果之前有安裝過 go,那麼需要將該位置的 go 目錄刪除掉 :
sudo rm -rf /usr/local/go
接著下載安裝並安裝:
# 下載安裝包
$ wget https://golang.google.cn/dl/go1.18.linux-amd64.tar.gz
# 解壓 golang 到 /usr/local 下
$ sudo tar xzvf go1.18.linux-amd64.tar.gz -C /usr/local
最後設定環境變數:
# 修改 $HOME/.profile 或 /etc/profile 檔案
# 這裡可能會出現許可權不足(ubuntu需要加sudo, centos需要切換成root許可權)
$ sudo vim /etc/profile
# 在該檔案最後一行插入(進入後,按 i鍵進入編輯模式)
$ export PATH=$PATH:/usr/local/go/bin
# 按 esc 退出編輯模式, 按 :wq 儲存檔案
$ go version
系統返回:
go version go1.18 linux/amd64
如果我們不希望go lang在系統中留下些許的痕跡,Docker也可以幫我們快速搭建開發環境,關於Docker的安裝,請移玉步至:一寸宕機一寸血,十萬容器十萬兵|Win10/Mac系統下基於Kubernetes(k8s)搭建Gunicorn+Flask高可用Web叢集。
首先建立環境資料夾:
mkdir mygo
cd mygo
隨後建立測試指令碼hello.go:
package main
func main() {
println("hello go1.18")
}
接著建立Docker映象打包檔案Dockerfile:
FROM golang:alpine
WORKDIR /build
COPY hello.go .
RUN go build -o hello hello.go
CMD ["./hello"]
這裡的建立邏輯是基礎映象選擇alpine,容器內建立build編譯資料夾,將hello.go拷貝到build目錄下,隨後執行容器內的go編譯器對指令碼進行打包,最後執行打包後的可執行檔案。
執行命令打包映象:
docker build -t go .
隨後系統自動下載基礎映象並且編譯:
Sending build context to Docker daemon 3.072kB
Step 1/5 : FROM golang:alpine
---> 15115d36d05e
Step 2/5 : WORKDIR /build
---> Using cache
---> 09ea4177a5f7
Step 3/5 : COPY hello.go .
---> 20ff0208e342
Step 4/5 : RUN go build -o hello hello.go
---> Running in c03d13c80c36
Removing intermediate container c03d13c80c36
---> c41673d8b447
Step 5/5 : CMD ["./hello"]
---> Running in 8f74af4426cf
Removing intermediate container 8f74af4426cf
---> caf626888641
Successfully built caf626888641
Successfully tagged go:latest
檢視映象明細:
docker images
返回明細:
[root@instance-7dojaq0e mygo]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
go latest caf626888641 43 minutes ago 329MB
golang alpine 15115d36d05e 15 hours ago 328MB
執行docker命令啟動容器:
docker run -it --rm go
系統返回:
hello go1.18
至此,Docker搭建go lang1.18環境就完成了。
編寫Go lang程式碼也可以選擇輕量編輯器Sublime,是的,一律千篇的Goland多多少少有點審美疲勞,關於Sublime 4的安裝,請移步:輕盈瀟灑卓然不群,敏捷編輯器Sublime text 4中文設定Python3開發執行程式碼環境(Win11+M1 mac)這裡不再贅述。
開啟Sublime 4,使用組合鍵:
control + shift + p
如果是mac平臺,鍵入:
cmd + shift + p
在彈出的命令列中選擇:Install Package
然後輸入:Golang Build 按回車安裝
安裝成功後,設定go lang安裝路徑:
偏好設定 -> package settings -> Golang Config -> Settings - Uesrs
{
"PATH": "C:/Go/bin",
"GOPATH": "C:/Go"
}
緊接著設定go mod,go mod是Go語言的包管理工具,官方推薦使用,有了它就不再受GOPATH的限制,可以在任何目錄初始化專案,開啟命令列,鍵入命令:
go env -w GO111MODULE=auto
go env -w GOPROXY=https://goproxy.cn,direct
然後在Sublime 4中新建一個hello.go檔案:
package main
import "fmt"
func main() {
fmt.Println("hello go1.18")
}
接著使用快捷鍵 control + b 或者 control + shift + b 選擇go run編譯器執行程式碼,Mac系統用cmd替換control,如圖所示:
隨後繼續安裝程式碼補全外掛,鍵入:control + shift + p 並輸入:Install Package
輸入:Golang Tools Integration 回車進行安裝
重啟Sublime 4。
隨後即可在程式碼中進行補全操作:
至此,開發編輯器就設定好了。
不同於Python或者是Ruby,Go lang不是系統預裝的基礎語言,所以設定起來相對獨立,不需要考慮與系統版本衝突問題。與此同時,Golang還支援交叉編譯功能,即在Windows平臺可以將程式碼編譯成Linux平臺可執行的檔案,對於Windows平臺使用者來說,這無疑是一個重大利好。