|
| 1 | +# 1.1安裝 Go |
| 2 | + |
| 3 | +## Go的三種安裝方式 |
| 4 | +Go有多種安裝方式,你可以選擇自己喜歡的。這裡我們介紹三種最常見的安裝方式: |
| 5 | + |
| 6 | +- Go原始碼安裝:這是一種標準的軟體安裝方式。對於經常使用Unix類別系統的使用者,尤其對於開發者來說,從原始碼安裝可以自己訂製。 |
| 7 | +- Go標準套件安裝:Go提供了方便的安裝套件,支援Windows、Linux、Mac等系統。這種方式適合快速安裝,可根據自己的系統位數下載好相應的安裝套件,一路next就可以輕鬆安裝了。**推薦這種方式** |
| 8 | +- 第三方工具安裝:目前有很多方便的第三方軟體套件工具,例如Ubuntu的apt-get和wget、Mac的homebrew等。這種安裝方式適合那些熟悉相應系統的使用者。 |
| 9 | + |
| 10 | +最後,如果你想在同一個系統中安裝多個版本的Go,你可以參考第三方工具[GVM](https://github.com/moovweb/gvm),這是目前在這方面做得最好的工具,除非你知道怎麼處理。 |
| 11 | + |
| 12 | +## Go原始碼安裝 |
| 13 | +Go 1.5徹底移除C程式碼,Runtime、Compiler、Linker均由Go編寫,實現自舉。只需要安裝了上一個版本,即可從原始碼安裝。 |
| 14 | + |
| 15 | +在Go 1.5前,Go的原始碼中,有些部分是用Plan 9 C和AT&T彙編寫的,因此假如你要想從原始碼安裝,就必須安裝C的編譯工具。 |
| 16 | + |
| 17 | +在Mac系統中,只要你安裝了Xcode,就已經包含了相應的編譯工具。 |
| 18 | + |
| 19 | +在類別Unix系統中,需要安裝gcc等工具。例如Ubuntu系統可透過在終端中執行`sudo apt-get install gcc libc6-dev`來安裝編譯工具。 |
| 20 | + |
| 21 | +在Windows系統中,你需要安裝MinGW,然後透過MinGW安裝gcc,並設定相應的環境變數。 |
| 22 | + |
| 23 | +你可以直接去官網[下載原始碼](http://golang.org/dl/),找相應的`goVERSION.src.tar.gz`的檔案下載,下載之後解壓縮到`$HOME`目錄,執行如下程式碼: |
| 24 | + |
| 25 | + cd go/src |
| 26 | + ./all.bash |
| 27 | + |
| 28 | +執行all.bash後出現"ALL TESTS PASSED"字樣時才算安裝成功。 |
| 29 | + |
| 30 | +上面是Unix風格的命令,Windows下的安裝方式類似,只不過是執行`all.bat`,呼叫的編譯器是MinGW的gcc。 |
| 31 | + |
| 32 | +如果是Mac或者Unix使用者需要設定幾個環境變數,如果想重啟之後也能生效的話把下面的命令寫到`.bashrc`或者`.zshrc`裡面, |
| 33 | + |
| 34 | + export GOPATH=$HOME/gopath |
| 35 | + export PATH=$PATH:$HOME/go/bin:$GOPATH/bin |
| 36 | + |
| 37 | +如果你是寫入檔案的,記得執行`bash .bashrc`或者`bash .zshrc`使得設定立馬生效。 |
| 38 | + |
| 39 | +如果是window系統,就需要設定環境變數,在path裡面增加相應的go所在的目錄,設定gopath變數。 |
| 40 | + |
| 41 | +當你設定完畢之後在命令列裡面輸入`go`,看到如下圖片即說明你已經安裝成功 |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | +圖1.1 原始碼安裝之後執行Go命令的圖 |
| 46 | + |
| 47 | +如果出現Go的Usage資訊,那麼說明Go已經安裝成功了;如果出現該命令不存在,那麼可以檢查一下自己的PATH環境變中是否包含了Go的安裝目錄。 |
| 48 | + |
| 49 | +從go 1.8開始,GOPATH環境變數現在有一個預設值,如果它沒有被設定。 它在Unix上預設為$HOME/go,在Windows上預設為%USERPROFILE%/go。 |
| 50 | +> 關於上面的GOPATH將在下面小節詳細講解 |
| 51 | +
|
| 52 | +## Go標準套件安裝 |
| 53 | + |
| 54 | +Go提供了每個平臺一鍵安裝的選項,這些套件預設會安裝到如下目錄:/usr/local/go (Windows系統:c:\Go),當然你可以改變他們的安裝位置,但是改變之後你必須在你的環境變數中設定如下資訊: |
| 55 | + |
| 56 | + export GOROOT=$HOME/go |
| 57 | + export GOPATH=$HOME/gopath |
| 58 | + export PATH=$PATH:$GOROOT/bin:$GOPATH/bin |
| 59 | + |
| 60 | +上面這些命令對於Mac和Unix使用者來說最好是寫入`.bashrc`或者`.zshrc`檔案,對於windows使用者來說當然是寫入環境變數。 |
| 61 | + |
| 62 | +### 如何判斷自己的作業系統是32位還是64位? |
| 63 | + |
| 64 | +我們接下來的Go安裝需要判斷作業系統的位數,所以這小節我們先確定自己的系統型別。 |
| 65 | + |
| 66 | +Windows系統使用者請按Win+R執行cmd,輸入`systeminfo`後Enter,稍等片刻,會出現一些系統資訊。在“系統型別”一行中,若顯示“x64-based PC”,即為64位系統;若顯示“X86-based PC”,則為32位系統。 |
| 67 | + |
| 68 | +Mac系統使用者建議直接使用64位的,因為Go所支援的Mac OS X版本已經不支援純32位處理器了。 |
| 69 | + |
| 70 | +Linux系統使用者可透過在Terminal中執行命令`arch`(即`uname -m`)來檢視系統資訊: |
| 71 | + |
| 72 | +64位系統顯示 |
| 73 | + |
| 74 | + x86_64 |
| 75 | + |
| 76 | +32位系統顯示 |
| 77 | + |
| 78 | + i386 |
| 79 | + |
| 80 | +### Mac 安裝 |
| 81 | + |
| 82 | +訪問[下載地址][downlink],32位系統下載go1.4.2.darwin-386-osx10.8.pkg(更新的版本已無32位下載),64位系統下載go1.8.3.darwin-amd64.pkg,雙擊下載檔案,一路預設安裝點選下一步,這個時候go已經安裝到你的系統中,預設已經在PATH中增加了相應的`~/go/bin`,這個時候開啟終端,輸入`go` |
| 83 | + |
| 84 | +看到類似上面原始碼安裝成功的圖片說明已經安裝成功 |
| 85 | + |
| 86 | +如果出現go的Usage資訊,那麼說明go已經安裝成功了;如果出現該命令不存在,那麼可以檢查一下自己的PATH環境變中是否包含了go的安裝目錄。 |
| 87 | + |
| 88 | +### Linux 安裝 |
| 89 | + |
| 90 | +訪問[下載地址][downlink],32位系統下載go1.8.3.linux-386.tar.gz,64位系統下載go1.8.3.linux-amd64.tar.gz, |
| 91 | + |
| 92 | +假定你想要安裝Go的目錄為 `$GO_INSTALL_DIR`,後面替換為相應的目錄路徑。 |
| 93 | + |
| 94 | +解壓縮`tar.gz`到安裝目錄下:`tar zxvf go1.8.3.linux-amd64.tar.gz -C $GO_INSTALL_DIR`。 |
| 95 | + |
| 96 | +設定PATH,`export PATH=$PATH:$GO_INSTALL_DIR/go/bin` |
| 97 | + |
| 98 | +然後執行`go` |
| 99 | + |
| 100 | + |
| 101 | + |
| 102 | +圖1.2 Linux系統下安裝成功之後執行go顯示的資訊 |
| 103 | + |
| 104 | +如果出現go的Usage資訊,那麼說明go已經安裝成功了;如果出現該命令不存在,那麼可以檢查一下自己的PATH環境變中是否包含了go的安裝目錄。 |
| 105 | + |
| 106 | +### Windows 安裝 ### |
| 107 | + |
| 108 | +訪問[Golang 下載頁][downlink],32 位請選擇名稱中包含 windows-386 的 msi 安裝套件,64 位請選擇名稱中包含 windows-amd64 的。下載好後執行,不要修改預設安裝目錄 C:\Go\,若安裝到其他位置會導致不能執行自己所編寫的 Go 程式碼。安裝完成後預設會在環境變數 Path 後新增 Go 安裝目錄下的 bin 目錄 `C:\Go\bin\`,並新增環境變數 GOROOT,值為 Go 安裝根目錄 `C:\Go\` 。 |
| 109 | + |
| 110 | +**驗證是否安裝成功** |
| 111 | + |
| 112 | +在執行中輸入 `cmd` 開啟命令列工具,在提示符下輸入 `go`,檢查是否能看到 Usage 資訊。輸入 `cd %GOROOT%`,看是否能進入 Go 安裝目錄。若都成功,說明安裝成功。 |
| 113 | + |
| 114 | +不能的話請檢查上述環境變數 Path 和 GOROOT 的值。若不存在請解除安裝後重新安裝,存在請重啟計算機後重試以上步驟。 |
| 115 | + |
| 116 | +## 第三方工具安裝 |
| 117 | + |
| 118 | +### GVM |
| 119 | + |
| 120 | +gvm是第三方開發的Go多版本管理工具,類似ruby裡面的rvm工具。使用起來相當的方便,安裝gvm使用如下命令: |
| 121 | +```sh |
| 122 | + |
| 123 | +bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) |
| 124 | +``` |
| 125 | +安裝完成後我們就可以安裝go了: |
| 126 | +```sh |
| 127 | + |
| 128 | +gvm install go1.8.3 |
| 129 | +gvm use go1.8.3 |
| 130 | +``` |
| 131 | +也可以使用下面的命令,省去每次呼叫gvm use的麻煩: |
| 132 | + gvm use go1.8.3 --default |
| 133 | + |
| 134 | +執行完上面的命令之後GOPATH、GOROOT等環境變數會自動設定好,這樣就可以直接使用了。 |
| 135 | + |
| 136 | +### apt-get |
| 137 | +Ubuntu是目前使用最多的Linux桌面系統,使用`apt-get`命令來管理軟體套件,我們可以透過下面的命令來安裝Go,為了以後方便,應該把 `git` `mercurial` 也安裝上: |
| 138 | +```sh |
| 139 | + |
| 140 | +sudo apt-get install python-software-properties |
| 141 | +sudo add-apt-repository ppa:gophers/go |
| 142 | +sudo apt-get update |
| 143 | +sudo apt-get install golang-stable git-core mercurial |
| 144 | +``` |
| 145 | +### wget |
| 146 | +```sh |
| 147 | + |
| 148 | +wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz |
| 149 | +sudo tar -xzf go1.8.3.linux-amd64.tar.gz -C /usr/local |
| 150 | +``` |
| 151 | + |
| 152 | +配置環境變數: |
| 153 | +```sh |
| 154 | + |
| 155 | +export GOROOT=/usr/local/go |
| 156 | +export GOBIN=$GOROOT/bin |
| 157 | +export PATH=$PATH:$GOBIN |
| 158 | +export GOPATH=$HOME/gopath (可選設定) |
| 159 | +``` |
| 160 | +或者使用: |
| 161 | +```sh |
| 162 | +sudo vim /etc/profile |
| 163 | +``` |
| 164 | +並新增下面的內容: |
| 165 | +```sh |
| 166 | +export GOROOT=/usr/local/go |
| 167 | +export GOBIN=$GOROOT/bin |
| 168 | +export PATH=$PATH:$GOBIN |
| 169 | +export GOPATH=$HOME/gopath (可選設定) |
| 170 | +``` |
| 171 | + |
| 172 | +重新載入 profile 檔案 |
| 173 | +```sh |
| 174 | +source /etc/profile |
| 175 | +``` |
| 176 | +### homebrew |
| 177 | +homebrew是Mac系統下面目前使用最多的管理軟體的工具,目前已支援Go,可以透過命令直接安裝Go,為了以後方便,應該把 `git` `mercurial` 也安裝上: |
| 178 | + |
| 179 | +1.安裝homebrew |
| 180 | + |
| 181 | +```sh |
| 182 | +/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
| 183 | +``` |
| 184 | + |
| 185 | +2.安裝go |
| 186 | + |
| 187 | +```sh |
| 188 | + |
| 189 | +brew update && brew upgrade |
| 190 | +brew install go |
| 191 | +brew install git |
| 192 | +brew install mercurial //可選安裝 |
| 193 | +``` |
| 194 | + |
| 195 | +## links |
| 196 | + * [目錄](<preface.md>) |
| 197 | + * 上一節: [Go環境配置](<01.0.md>) |
| 198 | + * 下一節: [GOPATH 與工作空間](<01.2.md>) |
| 199 | + |
| 200 | +[downlink]:http://golang.org/dl/ "Go安裝套件下載" |
0 commit comments