參考文檔1:https://www.cnblogs.com/majianguo/p/7258975.html
參考文檔2:http://www.loongson.cn/news/company/456.html
通常情況下,安裝go只需要在官網(https://golang.org/dl/)下載適合系統的二進制發布包,按照安裝說明進行安裝即可。
對於Linux, Mac OS X和FreeBSD系統下的安裝,三步即可完成:
1.下載tarballs文件go$VERSION.$OS-$ARCH.tar.gz,例如1.8.3
wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz)
2.執行tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz提取到 /usr/local
3.設置環境變量,將/usr/local/go/bin 加入到PATH環境變量。可以通過將
export PATH=$PATH:/usr/local/go/bin 添加到/etc/profile或$HOME/.profile文件的最后一行。
對於windows系統下的安裝,可以下載msi安裝包,安裝程序自動將go發布拷貝到c:\go目錄下,並且將c:\go\bin目錄加入到PATH環境變量。
如果安裝位置不是/usr/local/go或者c:\go目錄,則需要設置GOROOT環境變量,將GOROOT/bin加入到PATH環境變量。
Go的一大特征是簡單,通過下載二進制發布包安裝go環境就充分體現了簡單性。
某些時候,可能要使用特殊版本的go,從源碼安裝,這同樣很簡單。從源碼安裝,首先要進行編譯。Go 1.5實現了bootstrapping,所以編譯1.5以后的版本和編譯1.5以前的版本會略有不同。bootstrapping是編譯器領域的一個術語,中文翻譯為自舉或自展,通俗地講“用要編譯的目標語言編寫其編譯器(匯編器)”。Go1.5開始編譯器和運行時完全用Go語言編寫(還有少量匯編);go1.4是最后一個用C編寫工具鏈的發布。
編譯go1.4,ubuntu 16.04.2系統:
cd ~ wget https://storage.googleapis.com/golang/go1.4-bootstrap-20170531.tar.gz tar zxvf go1.4-bootstrap-20170531.tar.gz cd go/src/ ./all.bash
編譯完成后,可以看到如下輸出:
ALL TESTS PASSED --- Installed Go for linux/amd64 in /home/dell/go Installed commands in /home/dell/go/bin *** You need to add /home/dell/go/bin to your PATH.
成功編譯后,將~/go/bin加入到PATH環境變量
sudo gedit /etc/profile
在最后一行加入 export PATH=/home/dell/go/bin:$PATH 保存
source /etc/profile
執行go version,檢查安裝
dell@dell-VirtualBox:~/go/src$ go version go version go1.4-bootstrap-20170531 linux/amd64
編譯Go1.5及以上版本:
Go 1.5開始編譯器和運行時用go自身編寫,要編譯它們,首先要安裝go編譯器。all.bash 編譯腳本會在$GOROOT_BOOTSTRAP環境變量中查找一個已經存在的go tool chain,實際上就是要有一個編譯好的bin/go程序,$GOROOT_BOOTSTRAP/bin/go應該是go二進制命令。有很多選擇,可以在官網(https://golang.org/dl/)下載go發布包;也可以用go1.4源碼編譯,也就是按照上面的步驟編譯go1.4,然后再去編譯更高版本的go。
用官方下載的go1.7編譯go 1.8,ubuntu 16.04.2 舉例:
cd ~ wget https://storage.googleapis.com/golang/go1.7.6.linux-amd64.tar.gz wget https://github.com/golang/go/archive/go1.8.3.tar.gz tar zxvf go1.7.6.linux-amd64.tar.gz tar zxvf go1.8.3.tar.gz export GOROOT_BOOTSTRAP=/home/dell/go cd go-go1.8.3/src ./all.bash
編譯成功后,有如下輸出:
##### API check Go version is "go1.8.3", ignoring -next /home/dell/go-go1.8.3/api/next.txt ALL TESTS PASSED --- Installed Go for linux/amd64 in /home/dell/go-go1.8.3 Installed commands in /home/dell/go-go1.8.3/bin *** You need to add /home/dell/go-go1.8.3/bin to your PATH.
sudo gedit /etc/profile 將export PATH=/home/dell/go-go1.8.3/bin:$PATH 加入到文件最后一行
執行go version 檢查安裝
dell@dell-VirtualBox:~/go-go1.8.3/src$ go version go version go1.8.3 linux/amd64
不管從二進制安裝還是從源碼安裝,go就是這么簡單!
編譯mips64el架構下go
從Go 1.5開始,Go語言的編譯器、匯編器和鏈接器等底層工具鏈全部使用Go語言來實現。故自Go 1.5開始,從源代碼安裝Go語言環境時需要使用現成的Go語言編譯器來編譯Go的源代碼,上述過程稱為Go語言的自舉編譯。因此,從源代碼安裝Go 1.6時要求系統中存在Go 1.4及其以上的Go語言環境。
GOLANG源碼編譯,由於1.5版本之后是自舉實現的,所有編譯要先從1.4版本開始.
Go1.4的下載鏈接: https://pan.baidu.com/s/1uti8Qep9WGt_jjp0LtR62Q 提取碼: 2f8k
1、下載后可以解壓到任意目錄,例如可以通過如下命令將其解壓到/opt文件夾下並重命名為go1.4.2
$ tar xvzf go1.4.2.linux-amd64.tar.gz -C /opt $ mv /opt/go /opt/go1.4.2
2、配置交叉編譯的自舉編譯工具鏈(用1.4編譯工具鏈,編譯1.9甚至更高版本的Go,因為從Go 1.5開始,Go語言的編譯器、匯編器和鏈接器等底層工具鏈全部使用Go語言來實現。)
$ export GOROOT_BOOTSTRAP=/opt/go1.4.2
3、下載go1.9的源碼,地址:
鏈接: https://pan.baidu.com/s/10gviq7NeZAGty1KIbprqyA 提取碼: fwjd
4、解壓到/usr/local下,並重命名go1.9.2
tar zxfv go1.9.2.src.tar.gz -C /usr/local/
cd /usr/local
mv go go1.9.2
5、進入go1.9.2的src目錄下
cd /usr/local/go1.9.2/src/
6、編譯go1.92(X86).
編譯(X86),命令:
./make.bash
添加到GOROOT變量,並添加到path下,修改/etc/profile,文件最后,添加:
export GOROOT=/usr/local/go1.9.2 export PATH=$GOROOT/bin:$PATH
執行命令:
source /etc/profile
使修改配置生效
執行命令go version檢驗是否按照成功
[dyh@ump-pc1 src]$ go version go version go1.9.2 linux/amd64
6、編譯go1.92(mips64el).
在x86機器上,編譯mips64el的go,在src目錄下,執行命令
GOOS=linux GOARCH=mips64le ./bootstrap.bash
[root@ump-pc1 src]# GOOS=linux GOARCH=mips64le ./bootstrap.bash #### Copying to ../../go-linux-mips64le-bootstrap #### Cleaning ../../go-linux-mips64le-bootstrap #### Building ../../go-linux-mips64le-bootstrap ##### Building Go bootstrap tool. cmd/dist ##### Building Go toolchain using /opt/go1.4.2. bootstrap/cmd/internal/dwarf bootstrap/cmd/internal/objabi bootstrap/cmd/internal/src . . . cmd/compile/internal/amd64 cmd/compile/internal/arm cmd/compile/internal/arm64 cmd/compile/internal/mips cmd/compile/internal/mips64 cmd/compile/internal/ppc64 cmd/compile/internal/s390x cmd/compile/internal/x86 cmd/vendor/github.com/google/pprof/internal/report cmd/compile cmd/vendor/github.com/google/pprof/internal/symbolz cmd/vendor/github.com/google/pprof/internal/symbolizer cmd/vendor/github.com/google/pprof/third_party/svg cmd/vendor/github.com/google/pprof/internal/driver cmd/vendor/github.com/google/pprof/driver cmd/pprof cmd/trace cmd/vendor/github.com/google/pprof/internal/proftest cmd/vet/internal/cfg cmd/vet/internal/whitelist cmd/vet ---- Bootstrap toolchain for linux/mips64le installed in /home/dyh/Go/1.9.2/go-linux-mips64le-bootstrap. Building tbz. -rw-r--r--. 1 root root 55791450 9月 18 14:50 /home/dyh/Go/1.9.2/go-linux-mips64le-bootstrap.tbz
在src上上一級目錄中 ,生成go-linux-mips64le-bootstrap.tbz,及可運行在mips64el架構上的二進制文件
[root@ump-pc1 src]# cd ../.. [root@ump-pc1 1.9.2]# ls go go1.9.2.src.tar.gz go-linux-mips64le-bootstrap go-linux-mips64le-bootstrap.tbz
把go-linux-mips64le-bootstrap.tbz拷貝到mips64el機器上,解壓到/usr/local/go1.9.2路徑下
export GOROOT=/usr/local/go-linux-mips64le-bootstrap
export PATH=$GOROOT/bin:$PATH
校驗安裝准確性
[root@node110 go-linux-mips64le-bootstrap]# source /etc/profile [root@node110 go-linux-mips64le-bootstrap]# go version go version go1.9.2 linux/mips64le