# Go 的新手安裝 距離安裝完 GoLang 已經一段時間了,會現在才寫這篇文章是因為就算安裝完成了大概還是不瞭解它的安裝目錄結構,因此花了點時間研究一下。 這邊記錄一下 Go 的安裝經驗 # 安裝 ## 在 Windows 上安裝 * 可以直接到官網安裝,但是建議先安裝 [Chocolatey](https://chocolatey.org/install#individual),這樣之後可以利用 choco 自動更新 Golang 的版本 * 打開 Windows 的 PowerShell,記得要使用管理者權限 * 安裝 golang ``` C:\> choco install golang ``` * 之後要更新 golang 時 ``` C:\> choco upgrade golang ``` ## 在 Ubuntu 上安裝 ### 下載 golang lib ``` $ sudo apt-get install golang #預設是 v1.10 ``` ### 下載 golang v1.11 版本以上 * 安裝最新版的 go (例如是 1.14) * 安裝的預設路徑是 /usr/lib/go-1.14/bin ```shell sudo add-apt-repository ppa:longsleep/golang-backports sudo apt update sudo apt install golang-go ``` * 如果要安裝 go-1.11 版本的話 * 預設路徑 /usr/lib/go-1.11/bin ```shell $ sudo add-apt-repository ppa:gophers/archive $ sudo apt update $ sudo apt install golang-1.11-go ``` ### 設定 GO 環境變數 * 打開 profile 檔案 ``` $ vim ~/.profile ``` * 在 profile 檔案最底下加入以下幾行 ``` export GOROOT=/usr/lib/go-1.11 export GOPATH=$HOME/go export PATH=$GOPATH/bin:$GOROOT/bin:$PATH ``` * 更新 profile ``` $ source ~/.profile ``` * 確認更新完成 ``` $ go version ``` ### 安裝 GCC 和相關開發工具 ``` $ sudo apt-get install build-essential ``` ## 安裝結論 1. 我自己覺得好像在 windows 上安裝會比較方便,因為使用 chocolatey 可以幫你安裝也可以幫你更新也可以幫你設定好路徑等等,但是在 Ubuntu 上自己安裝可以完全控制路徑問題,也是可以試試。 2. GOROOT / GoPath 如果沒有手動設定的話,現在新版的 golang 都會自動設定預設值 * go v1.10 預設在 /home/user/go 資料夾 * go v1.11 以上預設在 /usr/lib/go-1.11/bin # 所以 GO 到底長怎樣 ## 目錄結構 其實在 GO 安裝完成後,有一些目錄結構一定會存在的,不管在哪個作業系統都一樣,這裡來介紹一下 **GOROOT** 就是 GO 原始碼存放的地方,以 v1.11 版來說就會位於 /usr/lib/go-1.11 資料夾下 **GOPATH** 就是專案目錄結構,專門用來存放之後下載 GO 第三方套件的地方,其實可以先自己開個資料夾就好,這裡設定好後,第一次下載其他套件時,GO 就會自動在裡面開創需要的資料夾,所以不用管它也沒關係。 另外既然 gopath 是專案目錄資料夾,所以當然也是存放 source code 的地方,如果沒設定這個路徑的話則之後所有的原始碼都會自動存放到 GOROOT 位置,建議還是不要這樣做比較好,讓原始碼存在它該存在的位置。 以上兩個部份可以看到上面 profile 檔案裡有出現 export 這些路徑位置。 ## GOPATH 目錄結構 在 **GOPATH** 中有三個資料夾,包括 **bin** , **pkg** , **src** **bin** 存放編譯出來的可執行檔 **src** 存放原始碼,通常目錄結構是 src/網域/帳號/專案,其實只要看 github 抓下來的原始碼目錄結構大概就是長這個樣子。但是我也有看到有一些是直接 src/網域/專案 的結構,目前還不確定為什麼,等之後再來研究。 ## 結論 總要先知道自己抓下來的套件庫放在哪才能知道自己在呼叫時要怎麼寫才對,所以還是得瞭解一下目錄結構。 然後自己看範例寫了個最簡單的呼叫第三方套件小程式,先[放在這](https://github.com/Jemmy1234/go_practice/tree/master/pathtest) # 參考資料 [Ubuntu 安裝 Golang 及撰寫 Hello World](http://bit.ly/33fBBgi) [Install Go 1.11 on Ubuntu 18.04 & 16.04 LTS](http://bit.ly/2ICAMEE) [Go on Github](http://bit.ly/38La07H) [Go語言基礎實戰練習(三)- 專案目錄結構](https://medium.com/@cosmo.chang/go語言基礎實戰練習-三-專案目錄結構-a0ebf5c21b89)