原文轉載自「劉悦的技術博客」https://v3u.cn/a_id_222
Go lang,為併發而生的靜態語言,源於C語言又不拘泥於性能,高效卻不流於古板,Python靈活,略輸性能,Java嚴謹,稍遜風騷。君不見各大廠牌均紛紛使用Go lang對自己的高併發業務進行重構,原因無他,經濟下行的大背景之下,性能突出、效率拉滿的Go lang無疑是高併發場景下節約服務器資源的一劑靈藥。
與時俱進,順應潮流,本次我們乘着市場的東風,在各大主流平台(Win/Mac/Linux/Docker)安裝並搭建Go lang1.18的開發環境,短時間內做到能夠在任何一款開發機或者服務器上輸出Go lang的全部功力,如臂使指,揮灑自如。
Windows11平台
首先來到市場佔有率最高的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系統,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會根據當前系統架構來自動選擇不同系統架構的編譯版本來進行安裝。
Ubuntu/Centos
首先刪除 /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
Docker容器搭建
如果我們不希望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環境就完成了。
Sublime 4 for Go lang
編寫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平台用户來説,這無疑是一個重大利好。
原文轉載自「劉悦的技術博客」 https://v3u.cn/a_id_222