實驗:安裝 Golang 開發環境
【實驗環境】
??Ubuntu 18.04.4
【實驗內容】
??安裝 go 語言開發環境
【實驗程序】
-
實驗環境搭建
??本實驗在 VirtualBox 中創建作業系統為 Ubuntu 18.04.4 的虛擬機作為后續實驗的環境,其中,鏡像下載可轉至清華大學開源軟體鏡像站, -
安裝 VSCode
??參見在linux系統中安裝VSCode(Visual Studio Code), -
安裝 golang
??訪問 Go官方鏡像站下載 Linux 版本的golang,
??
# 這一步需要切換為超級用戶進行
# tar xzvf 下載路徑/go1.15.1.linux-amd64.tar.gz -C 指定解壓路徑
sudo tar xzvf /home/sherry/Downloads/go1.15.1.linux-amd64.tar.gz -C /usr/local
- 創建作業空間:
mkdir $HOME/gowork
- 打開 $HOME/.profile 檔案,在結尾添加以下兩行:
export GOPATH=$HOME/gowork
export PATH=$PATH:$GOPATH/bin
- 使環境變數設定生效:
source $HOME/.profile
- 在命令列視窗輸入 “go env” 檢查配置:
??
- 撰寫第一個 go 程式
- 創建源代碼目錄
# mkdir $GOPATH/src/github.com/user_name/hello -p
mkdir $GOPATH/src/github.com/sherryjw/hello -p
- 創建并撰寫hello.go:
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
- 運行:
??
- 安裝必要的工具和插件
- 安裝 Git 客戶端
sudo apt-get install git
-
檢查 git 安裝情況,可通過查看 git 版本:
??
-
安裝 go 的相關工具
??由于無法直接訪問 golang.org,因此需要通過使用 github 上的鏡像來安裝,步驟如下:
??①. 下載源代碼到本地:
??注:該步驟若按照課程主頁進行可能出錯,
mkdir $GOPATH/src/golang.org/x -p
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/tools.git
??②. 安裝工具包:
go install $GOPATH/src/golang.org/x/tools/go/buildutil
??③. 退出 VSCode 再進入,按提示安裝;在 VSCode 中運行 hello.go:
??
??④. 查看 go 當前作業空間的目錄結構,應該和官方檔案如何使用Go編程的作業空間一致:
??
??⑤. 安裝運行 hello world:
go install github.com/github-user/hello
hello
??
- 安裝與運行 go tour
??注:該步驟若按照課程主頁進行可能出錯,
??設定代理:
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
??獲取 https://tour.golang.org/ 的離線版本:
go get golang.org/x/tour
??此時獲取的 tour 包被放在 $GOPATH/pkg/mod/golang.org/x 目錄下,需要將其轉移到 $GOPATH/src/golang.org/x 目錄下,并更名為 tour:
cp $GOPATH/pkg/mod/golang.org/x/tour@v0.0.0-20200508155540-0608babe047d $GOPATH/src/golang.org/x/tour -rf
??運行:
tour
??控制臺自動打開瀏覽器:
??
??
??現在可以離線訪問 Go Tour 了!
- 創建第一個自定義的包
- 創建包目錄:
mkdir $GOPATH/src/github.com/user/stringutil
-
在該目錄中創建名為 reverse.go 的檔案,內容如下:
??
-
用 go build 命令來測驗該包的編譯:
go build github.com/user/stringutil
-
確認 stringutil 包構建完畢后,修改原來的 hello.go 檔案,參考自定義的包:
??
-
安裝 hello 程式,此時 stringutil 包也會被自動安裝:
go install github.com/user/hello
- 運行:
??
可以看到自定義的包的實作達到預期效果,
- 第一次測驗
??可以通過創建檔案 $GOPATH/src/github.com/user/stringutil/reverse_test.go 來為 stringutil 添加測驗,其內容如下:
package stringutil
import "testing"
func TestReverse(t *testing.T) {
cases := []struct {
in, want string
}{
{"Hello, world", "dlrow ,olleH"},
{"Hello, 世界", "界世 ,olleH"},
{"", ""},
}
for _, c := range cases {
got := Reverse(c.in)
if got != c.want {
t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
}
}
}
??接著使用 go test 運行該測驗:
??
【實驗總結】
??本次實驗主要完成 go 語言開發的環境和簡單的入門使用,其中遇到的問題有:
-
下載 go tools 原始碼時出現以下情況:
??
??暫時未找到該問題的原因,因此選擇直接從對應的 github 庫下載:
??
-
安裝 gotour 失敗:
??按照課程網站的步驟運行 gotour 時出現以下問題:
??
??根據博客服務計算-CentOS下安裝Go開發環境遇到的一些問題所述可能是 github 上的倉庫不再維護,而里面提到的 bitbucket 同樣也 404 了,而本人又沒有梯子,該步驟一度無法進行,
??后來查閱到Go 技巧分享:Go 國內加速鏡像、Go 技巧分享:本地安裝 A tour of Go(含中文),設定了國內代理才解決該問題,事實上在安裝 go tools 時嘗試過設定代理,但彼時還沒有弄清楚具體做法,因此采用了其他方式,
【參考資料】
??golang安裝指南(中文版)
??從零開始搭建Go語言開發環境
??一鍵解決 go get golang.org/x 包失敗
??服務計算-CentOS下安裝Go開發環境遇到的一些問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/104054.html
標籤:其他
上一篇:我和X-DeFi有個約會:X-DeFi中國行—百城計劃首站告捷
下一篇:Matter Labs CEO Alex Gluhowski:Zero-Knowledge Proofs 和加速去中心化加密技術的大規模應用
