Linux(Ubuntu)下設定golang環境變數

weixin_34242658發表於2016-05-09

1).原始碼安裝go語言

Go的工具鏈採用C語言編寫,要構建它,你需要安裝一個C編譯器,本例採用gcc工具; 進入linux 終端,輸入命令列

sudo apt-get install build-essential

Go使用Mercurial進行版本管理,首先你必須安裝了Mercurial,對於 Ubuntu/Debian 系統先安裝easy_install;

sudo apt-get install mercurial

出現Processing triggers for python-support...需先安裝python環境 執行

sudo apt-get install python-setuptools python-dev

sudo easy_install mercurial

如果 還不行,那直接下載Mercurial安裝

獲取GO程式碼

hg clone -r release https://go.googlecode.com/hg/ $GOROOT

安裝Go:

cd $GOROOT/src

./all.bash

如果 還不行,那直接下載編譯好的程式碼安裝 解壓 go包放使用者根目錄下

sudo tar zxvf ~/Downloads/go1.0.3.linux-386.tar.gz -C /opt

2).設定環境變數,在/etc/profile檔案同新增以下內容

sudo gedit /etc/profile

export GOROOT=$HOME/go
export GOBIN=$GOROOT/bin
export GOARCH=386
export GOOS=linux
export GOPATH=$HOME/workspacego
export PATH=.:$PATH:$GOBIN 

GOARCH、GOOS為可選配置,交叉編譯時有用 GOPATH設定工作空間,允許多個目錄,當有多個目錄時,用分隔符分隔,當有多個GOPATH時,預設會將go get的內容放在第一個目錄下;

$GOPATH 目錄約定有三個子目錄:

src 存放原始碼(比如:.go .c .h .s等)

pkg 編譯後生成的檔案(比如:.a)

bin 編譯後生成的可執行檔案(為了方便,可以把此目錄加入到 $PATH 變數中)

應用剛剛配置的環境變數:source /etc/profile

上面的配置是針對系統級別的,建議採用使用者級別的配置如下:

如果使用者根目錄下不存在.bash_profile,則

cat > .bash_profile

export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/workspacego

CTRL_D(這是按 CTRL - D兩個鍵同時)

每次啟動系統應用

. ./.bash_profile

官方建議把配置記錄在使用者在~/.bashrc或者 ~/.profile中,這樣 登陸就可以使用go 而不用,每次登陸系統都要執行. ./.bash_profile

配置檔案的區別,請參閱後面的附錄

3).檢視go是否是release版

hg identify

更新go到新版本

cd $GOROOT

hg pull

hg update release

./all.bash

4).瀏覽本地doc

在命令列執行

godoc -http=:8080

在瀏覽器地址輸入:http://127.0.0.1:8080,即可進入doc介面

5).搭建基於瀏覽器的互動式Go程式設計指南-gotour

5.1).安裝Go語言英文教程:

sudo go get code.google.com/p/go-tour/gotour

5.2).安裝Go語言中文教程:

sudo go get bitbucket.org/mikespook/go-tour-zh/gotour

在命令列執行gotour,在瀏覽器地址輸入:http://127.0.0.1:3999,即可進入教程的學習介面。

附錄

參考:http://blog.csdn.net/wumingxing0228/article/details/6050175

環境變數是和Shell緊密相關的,使用者登入系統後就啟動了一個Shell。對於Linux來說一般是bash,但也可以重新設定或切換到其它的 Shell。對於UNIX,可能是CShelll。環境變數是通過Shell命令來設定的,設定好的環境變數又可以被所有當前使用者所執行的程式所使用。對於bash這個Shell程式來說,可以通過變數名來訪問相應的環境變數,通過export來設定環境變數。下面通過幾個例項來說明。

1)etc/profile:此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行. 並從/etc/profile.d目錄的配置檔案中搜集shell的設定. 注:在這裡我們設定是為所有使用者可使用的全域性變數。

2)/etc/bashrc:為每一個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.

3)~/.bashprofile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案. 注:~在LINUX下面是代表HOME這個變數的。 另外在不同的LINUX作業系統下,這個檔案可能是不同的,可能是~/.bashprofile; ~/.bash_login或 ~/.profile其中的一種或幾種,如果存在幾種的話,那麼執行的順序便是:~/.bashprofile、 ~/.bashlogin、 ~/.profile。比如我用的是Ubuntu,我的使用者資料夾下預設的就只有~/.profile檔案。

4)~/.bashrc:該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該檔案被讀取. (注:這個檔案是 .開頭的,所以在資料夾中被隱藏了) 那麼我們如何新增自己定義的環境變數呢? 用記事本開啟這個檔案,然後在裡面最後寫上: xiaokang=kangkang 然後儲存,這樣每次開啟一個新的terminal的時候,我們這個變數就生效了。記住,如果你已經開啟一個terminal,然後你修改了這個檔案,那麼在這個terminal下是不會生效的。一般情況使用者最好在這裡進行修改,但是有時候會覆蓋父級的變數,比如PATH是ROOT設定的,但是如果你在這個檔案裡面寫了PATH=xx,那麼將來所有的PATH都成了xx了,所以我們應該在這個檔案中寫為: PATH=$PATH:xx 這樣就把原來的和你自己的一起加上了。而且注意在LINUX系統下用:分割表示並列,而不是windo的; 3和4都是在使用者目錄下的,他們唯一的不同是: .bash_profile只能在登入的時候啟動一次。在我的Ubuntu裡面這個3檔案似乎沒有。

5)~/.bash_logout:當每次退出系統(退出bash shell)時,執行該檔案. 另外,/etc/profile中設定的變數(全域性)的可以作用於任何使用者,而~/.bashrc等中設定的變數(區域性)只能繼承/etc/profile中的變數,他們是/"父子/"關係.

~/.bash_profile 是互動式、login 方式進入 bash 執行的 ~/.bashrc 是互動式 non-login 方式進入 bash 執行的 通常二者設定大致相同,所以通常前者會呼叫後者。

好的,總結一下他們的執行方式: 當你登入並且登入shell是bash時,bash首先執行/etc/profile檔案中的命令(如果該檔案存在),然後它順序尋找~ /.bashprofile,~/.bashlogin或~/.profile檔案,並執行找到的第一個可讀檔案中的命令.當登入bash退出時,它 將執行~/.bashlogout檔案中的命令. 當啟動一個互動的bash時,它將執行~/.bashrc檔案中的命令(如果該檔案存在並且可讀).當非互動地啟動以執行一個shell指令碼時,bash將查詢bashenv環境變數,確定執行檔案的名稱.

相關文章