iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
1

Go的三種安裝方式

和其他語言的安裝類似,Go的安裝有三種方式,從簡單到複雜依序是使用第三方工具安裝、官方二進制包安裝和源碼安裝。

  • 系統工具安裝:目前有很多方便的第三方軟件包工具,例如Ubuntu的apt-get和wget、Mac的homebrew等。這種安裝方式適合那些熟悉相應系統的用戶。
  • 官方二進制包安裝:Go提供了方便的安裝包,支持Windows、Linux、Mac等系統。從官網下載系統對應的安裝包後,點擊執行就可安裝完畢。
  • Go源碼安裝:這是一種標準的軟件安裝方式。適合經常使用Unix類系統的用戶,尤其對於開發者來說,從源碼安裝的好處是可以自己定制。

最後,如果你想在同一個系統中安裝多個版本的Go,你可以參考第三方工具GVM,或是用Docker配置多個版本的Go容器。

系統工具安裝

不同操作系統通常都會為Go提供相應的軟體安裝方式,這種方式簡化了安裝過程,並且會幫使用者配置好相關的環境參數,省去一些繁雜的步驟。下面介紹不同系統下的安裝方式:

windows

Golang 下載頁找到對應的msi安裝包,32 位請選擇名稱中包含 windows-386 的 msi 安裝包,64 位請選擇名稱中包含 windows-amd64的。安裝完成後默認會在環境參數 Path 後添加 Go 安裝目錄下的 bin 目錄 C:\Go\bin\,並添加環境參數 GOROOT,值為 Go 安裝根目錄 C:\Go\
https://ithelp.ithome.com.tw/upload/images/20190918/20120698Jaj1a2yykZ.png

https://ithelp.ithome.com.tw/upload/images/20190918/20120698JrfDWdjpcm.png

如果更改了Go的安裝路徑,安裝完後要自行添加環境參數。

設定環境參數

電腦(右鍵) --> 內容 --> 進階系統設定 --> 環境變數 --> 選擇 Path --> 編輯
在其中加入:> %GOPATH%;
https://ithelp.ithome.com.tw/upload/images/20190918/20120698pgv5bBtVut.png

驗證是否安裝成功

開啟命令提示字元,並輸入go。看是否出現下圖的訊息。
https://ithelp.ithome.com.tw/upload/images/20190918/20120698x6HLlLV9rU.png

輸入 cd %GOROOT%,看是否能進入 Go 安裝目錄。若都成功,說明安裝成功。
不能的話請檢查上述環境參數 Path 和 GOROOT 的值。若不存在可以自行添加或重新安裝Go,若存在可以重啟電腦後測試環境參數是否生效。

Macos

在macos上,我們可使用pkg文件或homebrew安裝go。

pkg的安裝方式與windows的 setup.exe/msi 的類似,下載安裝包後,順著提示點擊"下一步"、"下一步"即可完成安裝。

homebrew是Mac系統下面目前使用最多的管理軟件的工具,目前已支持Go,homebrew並非Max自帶的系統工具,沒有安裝的話必須要先安裝homebrew。

  1. 安裝homebrew(已安裝可以跳過)

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  2. 安裝go

    brew update && brew upgrade
    brew install go
    brew install git
    brew install mercurial //可選安裝
    

ubuntu/debian

在debian或ubuntu上,我們可使用 apt-get 命令安裝go。比如,在Ubuntu 16.04.5 LTS系統,使用如下命令安裝:

sudo apt-get update // 視情況決定是否更新
sudo apt-get install golang-go

centos/redhat

在centos或redhat上,我們可以使用yum命令安裝go。比如,在CentOS 7.5上,使用如下命令安裝:

$ yum epel-release
$ yum install golang

先下載了epel-releaes源,可防止出現yum安裝golang不支持或版本太舊的問題。

二進制包安裝

所謂二進制包,也就是已經編譯好的包。這種安裝方式在不同的操作系統上步驟類似。
以window為例,同樣至Golang 下載頁,在列表中找尋Kind為Archive且檔名對應系統的壓縮檔,我們以windows 64位元舉例。
https://ithelp.ithome.com.tw/upload/images/20190918/20120698BLCoJPxmUk.png

接著把下載完的壓縮檔解壓到某個資料夾底下,比如C:\Program Files\,進入查看會發現其中已經包含了以go為名的新資料夾,至此,二進制包就安裝完了。
需要注意的是二進制包是已經編譯好的軟體包,所以不同系統、CPU架構下需要下載與之相應的包。

或許有人會想,就是移動個資料夾?其實系統安裝也就是執行這些動作,不同在於系統安裝包把所有的操作和環境配置都自動化了。

Go源碼編譯安裝

Go 1.5徹底移除C代碼,Runtime、Compiler、Linker均由Go編寫,實現自舉。只需要安裝了上一個版本,即可從源碼安裝。

在Go 1.5前,Go的源代碼中,有些部分是用Plan 9 C和AT&T匯編寫的,因此假如你要想從源碼安裝,就必須安裝C的編譯工具。

在Mac系統中使用到的 C 工具鏈是 Xcode 的一部分,因此你需要通過安裝 Xcode 來完成這些工具的安裝。你並不需要安裝完整的 Xcode,而只需要安裝它的命令行工具部分。

在類Unix系統中,需要安裝gcc等工具。例如Ubuntu系統可通過在終端中執行sudo apt-get install gcc libc6-dev來安裝編譯工具。

在Windows系統中,你需要安裝MinGW,然後通過MinGW安裝gcc,並設置相應的環境參數。

你可以直接去官網下載源碼,找相應的goVERSION.src.tar.gz的文件下載,下載之後解壓縮到$HOME目錄,執行如下代碼:

	cd go/src
	./all.bash

運行all.bash後出現"ALL TESTS PASSED"字樣時才算安裝成功。

上面是Unix風格的命令,Windows下的安裝方式類似,只不過是運行all.bat,調用的編譯器是MinGW的gcc。

如果是Mac或者Unix用戶需要設置幾個環境參數,如果想重啟之後也能生效的話把下面的命令寫到.bashrc或者.zshrc裏面,

export GOPATH=$HOME/gopath
export PATH=$PATH:$HOME/go/bin:$GOPATH/bin

如果你是寫入文件的,記得執行bash .bashrc或者bash .zshrc使得設置立刻生效。

如果是window系統,就需要設置環境參數,在path裏面增加相應的go所在的目錄,設置gopath變量。

當你設置完畢之後在命令行裏面輸入go,如果出現Go的Usage信息,那麽說明Go已經安裝成功了;如果出現該命令不存在,那麽可以檢查一下自己的PATH環境變中是否包含了Go的安裝目錄。

從go 1.8開始,GOPATH環境參數現在有一個默認值,如果它沒有被設置。 它在Unix上默認為$HOME/go,在Windows上默認為%USERPROFILE%/go。

Go目錄結構

安裝完成後進入Go目錄,一般語言沒有規定項目的目錄結構如何組織,我們可以參考Go的目錄結構去組織未來的所有開發項目,這樣一來就保持了不同項目也有一致性的結構,首先到Go的安裝目錄資料夾,如果是windows安裝路徑默認在C:/go底下,如果是unix/linux一般會在/usr/local/go,這個路徑 是unix software resource的含義:
https://ithelp.ithome.com.tw/upload/images/20190918/201206987rKr7jKT47.png

  • api 裡面包含所有APi列表
  • bin 裡面是一些Go的工具命令,主要是go、gofmt、godoc等
  • doc go的使用說明文件。
  • src 主要是一些源碼,如golang的編譯器,各種工具集以及標準庫的源碼。
  • pkg 保存包編釋後的檔案,副檔名是.a結尾。
  • test 存放測試Go語言代碼的文件。通過閱讀這些測試文件,可以大致了解Go語言的一些特性和使用方法。
  • misc 存放各類編輯器或IDE的Plugin,輔助它們查看和編寫Go代碼。

入門案例

最後寫一個經典的Hello World吧!
首先,創建一個名為hello.go的文件,注意副檔名必須為.go,內容如下:

package main

import "fmt"

func main(){
    fmt.Println("Hello World")
}

上面的代碼不懂沒關係,之後我們會再作詳細的介紹。接著打開命令提示字元,鍵入以下指令。

$ go run hello.go
Hello World

至此環境設置完成,下一章節開始進入Golang的世界


上一篇
Day2 聊聊Go的歷史
下一篇
Day4 源碼組成與Go tools
系列文
Golang入門到進階實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言