在 Ubuntu 開啓 GO 程序編譯之旅

本文將使用 putty 鏈接到一臺阿里雲 Ubuntu 16.04 服務器,在其上安裝 go 語言的編譯環境,旨在呈現從安裝到「你好,世界!」涉及的方方面面,但願完成這個過程無須覓它處。php

1. 安裝

方式一使用 apt-get

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

方式二使用 wget

直接下載想要的版本進行安裝,一切皆在掌控之中。經過如下兩條命令,咱們把 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

2. 設置環境變量

這裏會涉及到3個環境變量,分別是 PATH、GOROOT、GOPATH。
PATH,是爲了讓 go 命令隨處可敲。
GOROOT,表明 golang 的根目錄,在設置PATH時能夠用一下,如 export PATH=$GOROOT/bin。
GOPATH,特別重要,單獨作一節(2.2)來說。服務器

2.1 設置

環境變量能夠設置在不一樣的文件中。
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 讓其當即生效。阿里雲

2.2 GOPATH

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 |

3. 你好,世界!

3.1 編寫代碼

創建代碼文件。點此能夠在線嚐鮮 GO 代碼

vi hello.go
// 輸入如下代碼保存
package main
import "fmt"

func main(){
    fmt.Println("Hello world!")
}

3.2 執行

直接在文件目錄執行如下命令運行。

go run hello.go
// 或者
go build hello.go
./hello

4. 附件

設置環境變量的配置文件,有網友總結:

/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的執行都會使用它一次

相關文章
相關標籤/搜索