本文將使用 putty 鏈接到一臺阿里雲 Ubuntu 16.04 服務器,在其上安裝 go 語言的編譯環境,旨在呈現從安裝到「你好,世界!」涉及的方方面面,但願完成這個過程無須覓它處。php
apt-get install golang-go
執行完成以後,會把 golang 安裝在這個位置:/usr/lib/go-1.6/
,go 命令會在該目錄的 bin 子目錄下,同時,/usr/bin 下會有該命令的文件連接。linux
固然,也許你並不知道到底安裝在哪,能夠經過如下命令找找觀察判斷一下。golang
# 找名字爲 go 的文件 find / -name go
執行 /usr/bin/go version
,結果以下,顯示的版本號爲 go1.6.2,版本比較低。shell
是否是想卸載?使用如下命令能夠完成卸載,跟安裝一一對應。api
apt-get --purge remove golang-go
直接下載想要的版本進行安裝,一切皆在掌控之中。經過如下兩條命令,咱們把 golang 安裝在 /usr/local/go 下。bash
# 下載 wget https://storage.googleapis.com/golang/go1.9.1.linux-amd64.tar.gz # 解壓 tar -xzf go1.9.1.linux-amd64.tar.gz -C /usr/local
這裏會涉及到3個環境變量,分別是 PATH、GOROOT、GOPATH。
PATH,是爲了讓 go 命令隨處可敲。
GOROOT,表明 golang 的根目錄,在設置PATH時能夠用一下,如 export PATH=$GOROOT/bin。
GOPATH,特別重要,單獨作一節(2.2)來說。服務器
環境變量能夠設置在不一樣的文件中。
etc/profile : 對全部用戶生效
~/.profile : 對當前用戶生效ui
配置在哪都行,能用到便可。在配置文件末尾加上如下文本。google
export GOROOT=/usr/local/go export GOPATH=/usr/goprojs:$GOROOT export PATH=$GOROOT/bin:$PATH:$GOPATH/bin
GOPATH、PATH 多個路徑,中間使用冒號分隔。
配置完成後,使用source ~/.profile
讓其當即生效。阿里雲
GOPATH 是GO程序找依賴包的路徑。
其子目錄 src 中可放置各個包的源碼,編譯時會經過 GOPATH 去引用它們。
子目錄 bin 則是編譯以後的可執行文件,這就是爲何環境變量PATH 裏要加上 $GOPATH/bin 的緣由,讓編譯的運行文件在執行搜索路徑範圍內方便執行。
子目錄 pkg,編譯包的中間文件,不太關心它。
GOPATH 的第一個路徑特別重要。
使用 go get 下載的包都會安裝在第一個路徑,因此若是想讓公共包統一在某處,應該要爲它單獨創建一個路徑做爲GOPATH的第一個路徑,從而使得 go get 總去向那裏。實際項目最好另建路徑加入GOPATH,這樣即在引用範圍 go get 又影響不到。
附 go get 可帶參數:
|參數|描述|
|------|------|
| -v |顯示操做流程的日誌及信息 |
| -u |僅下載丟失的包,不更新已存在的 |
| -d | 只下載,不安裝 |
| -insecure | 容許使用HTTP,而不必定要HTTPS |
創建代碼文件。點此能夠在線嚐鮮 GO 代碼
vi hello.go // 輸入如下代碼保存 package main import "fmt" func main(){ fmt.Println("Hello world!") }
直接在文件目錄執行如下命令運行。
go run hello.go // 或者 go build hello.go ./hello
設置環境變量的配置文件,有網友總結:
/etc/profile,/etc/bashrc 是系統全局環境變量設定 ~/.profile,~/.bashrc用戶家目錄下的私有環境變量設定 當登入系統時候得到一個shell進程時,其讀取環境設定檔有三步 1).首先讀入的是全局環境變量設定檔/etc/profile,而後根據其內容讀取額外的設定的文檔,如 /etc/profile.d和/etc/inputrc 2).而後根據不一樣使用者賬號,去其家目錄讀取~/.bash_profile,若是這讀取不了就讀取~/.bash_login,這個也讀取不了纔會讀取 ~/.profile,這三個文檔設定基本上是同樣的,讀取有優先關係 3).而後在根據用戶賬號讀取~/.bashrc ~/.profile與~/.bashrc的區別 都具備個性化定製功能 ~/.profile能夠設定本用戶專有的路徑,環境變量,等,它只能登入的時候執行一次 ~/.bashrc也是某用戶專有設定文檔,能夠設定路徑,命令別名,每次shell script的執行都會使用它一次