Go 是一種靜態型別的程式語言。Go 最初由 Google 設計,在語法上與 C 相似。然而,在功能方面,Go 提供了額外的特性,例如記憶體安全、垃圾回收、結構化類型等。在過去的幾年裡,Go 變得非常受歡迎。
本指南將 透過一個示範的 Go 程式,逐步介紹建置和安裝 Go 程式的步驟。
Go 建置與安裝
在深入探討之前,讓我們快速了解一下在 Go 程式設計中,建置(building)和安裝(installing)代表什麼意思。
在 Go 程式設計中,建置是指將原始碼轉換為二進位執行檔的過程。該執行檔將包含必要的支援程式碼,以便它可以在目標平台上獨立執行。與 Ruby/Python 程式不同,Go 的二進位檔案通常不需要任何系統依賴項即可在新系統上執行。
將 Go 二進位檔案放入系統的執行檔路徑中稱為安裝程式。如前所述,本指南將示範一個簡單的 Go 「Hello world」程式的執行、建置和安裝。
先決條件
在開始之前,讓我們來看看您需要滿足哪些先決條件才能進行本教學:
- 已正確設定的 Ubuntu 20.04。請參考 如何安裝和設定 Ubuntu 伺服器.
- 具有 sudo 權限的非 root 使用者。執行系統級別的變更需要 root 權限。您可以從本教學中學習如何 授予 sudo 權限給非 root 使用者.
- 已正確 設定的 Go 程式設計環境.
首先,我們將快速瀏覽安裝和設定 Go 程式設計環境。如需更深入的逐步 Go 安裝指南,請點擊此處.
安裝 Go
Go 適用於所有主要平台(Windows、Linux 和 macOS)。官方可直接從 Golang 取得。由於該網站的名稱,Go 通常被稱為 Golang。在這裡,我們將一律把 Go 程式語言稱為 Go,並將 Golang 網站稱為 Golang。
Golang 提供了關於 所有支援平台的 Go 安裝 的詳細文件。然而,官方方法描述的是手動安裝。每次發布新版本時,您都必須手動將安裝更新到最新版本。相反地,我們可以直接使用 APT(從預設的 Ubuntu 套件庫)或 snap(從 Snapcraft).
● 使用 APT 安裝 Go
Go 可以直接從官方 Ubuntu 套件庫中取得。然而,它並不總是最新版本的 Go。Ubuntu 套件庫中也提供了兩種版本的 Go: golang-go 和 gccgo-go。雖然 golang-go 是來自 Golang 的官方版本,而 gccgo-go 則是 GCC 的 Go 前端(作為 GNU 編譯器的一部分)。通常, golang-go 是首選。
要安裝 golang-go,請執行以下 APT 指令:
|
1 |
sudo apt update && sudo apt install golang-go |

檢查 Go 版本:
|
1 |
go version |
● 使用 snap 安裝 Go
Snap 是通用的 Linux 套件,可以安裝在任何支援的發行版上。Snapcraft 列出了所有 支援的發行版及其安裝指南。在 Ubuntu 上,預設已啟用 snap 支援。Go 也可以作為 snap 取得。您需要記住,它並非由 Golang 官方維護。該 snap 套件是由第三方提供者管理的。
要安裝 Go snap,請執行以下指令:
|
1 |
sudo snap install go --classic |

然後,檢查 Go 版本:
|
1 |
go version |
設定 Go 專案
我們的系統已具備開始使用 Go 開發應用程式所需的所有工具。是時候建立我們的示範專案了。首先,為我們的專案建立一個專用目錄:
|
1 |
mkdir -v demo_project |

接下來,將目前目錄切換到新建立的目錄:
|
1 |
cd demo_project/ |

在此處,建立一個名為 main.go:
|
1 |
nano main.go |
以下程式碼包含一個簡單的程式,執行時會列印出「Hello world」。請複製此程式碼:
|
1 2 3 4 5 6 7 |
package main import "fmt" func main() { fmt.Println("hello world!") } |

儲存檔案並關閉編輯器。驗證程式碼是否正常運作:
|
1 |
go run main.go |

Go 編譯器將來源檔案建置為二進位檔案並執行它。它還會驗證程式是否成功運作。
Go 工作區設定
為了正確安裝 Go 程式,我們需要設定 Go 工作區和 GOPATH。
首先,建立目錄結構:
|
1 |
mkdir -pv $HOME/go/{bin,src} |

接下來,我們需要宣告 GOPATH 的值,並將其新增至 PATH。開啟 bashrc 檔案:
|
1 |
nano ~/.bashrc |

在檔案末尾新增以下幾行:
|
1 2 3 |
export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin |

重新載入 bashrc:
|
1 |
source ~/.bashrc |
驗證變更是否成功:
|
1 |
echo $PATH |
建置 Go 二進位檔案
本節將示範如何將 Go 程式碼編譯為可發行的獨立二進位檔案。該二進位檔案不僅包含 Go 程式碼,還包含執行該二進位檔案所需的其他系統程式碼。若要編譯我們的程式碼,請執行以下命令:
|
1 |
go build main.go |

如果有多個 Go 程式碼檔案,請使用以下命令:
|
1 |
go build |
如果未指定檔案,Go 將在目前目錄中搜尋 Go 檔案並編譯所有檔案。每個二進位檔案都以其來源 Go 檔案命名。在此範例中,Go 建置了程式 main。執行該程式:
|
1 |
./main |

此程式已準備好發行到其他電腦。
● 變更二進位檔案名稱
每當建置時,Go 都會自動為執行檔選擇一個名稱。在選擇名稱時,有兩種可能的選項。
- 如果 Go 模組 ,則執行檔將使用模組名稱的最後一部分。
- 如果未使用 Go 模組,則 Go 將使用目前目錄的名稱或來源檔案的名稱。
處理更複雜的程式需要不同的命名慣例。在這種情況下,這些預設的命名方法並不是很有用。在這種情況下,最好的方法是使用旗標 -o 來自訂輸出。讓我們進行快速示範。使用旗標 -o 以指定不同的檔案名稱:
|
1 |
go build -o bin/hello |

The -o 旗標會告訴 Go 將輸出與指定的引數進行比對。在這種情況下,執行檔將位於目錄 bin 且命名為 hello.
接下來,測試新的執行檔:
|
1 |
./bin/hello |
安裝 Go 程式
到目前為止,我們已經示範了如何從來源檔案建置可發行的 Go 二進位檔案。我們可以將它們發行到其他系統、進行部署和測試。然而,它們無法在來源目錄之外執行。如果您打算積極使用該程式,那麼這個限制可能會非常令人困擾。為了讓事情變得更容易,我們可以安裝 Go 程式,並從系統中的任何位置存取它們。
若要安裝程式,請在來源目錄中執行以下 Go 命令:
|
1 |
go install |

此命令的運作方式與 go build 相同。然而,它不會將執行檔留在來源目錄中,而是放置在以下目錄中:
|
1 |
$GOPATH/bin |
變數 GOPATH 和 GOBIN 會告訴 Go 在哪裡尋找 Go 工作區。 GOPATH 預設為位置 $HOME/go。我們手動將 GOBIN 設定為 $GOPATH/bin。若要檢查 GOPATH 和 GOBIN 的位置,請使用以下命令:
|
1 |
go env GOPATH |
|
1 |
go env GOBIN |

檢查 $GOPATH/bin 的內容。我們的程式應該在那裡:
|
1 |
ls $GOPATH/bin |

是時候驗證安裝是否成功了。將目前目錄切換到其他位置,並嘗試執行 Go 程式:
|
1 |
demo_project |

最後,您應該能夠將您的程式安裝到系統中。如此一來,您就可以隨時隨地使用它們。
結語
在本教學中,我們成功演示了如何使用 Go 工具鏈從原始碼建置可執行的二進位檔案。即使在沒有任何 Go 設定的其他系統上,也可以使用這些二進位檔案。最後,我們演示了如何安裝 Go 程式,使其在系統中的任何地方都可以使用。
對於開發人員,CloudSigma 提供 Go API 支援 來管理您的雲端伺服器。它允許編輯資源和擴充基礎架構。
祝您運算愉快!




留言
目前尚無留言。成為第一個留言的人吧。