golang安裝卸載 linux+windows+raspberryPI 平臺

 

 

參考  https://golang.org/doc/install
css

 

 

 

 

自ECUG2013洗腦回來,就渴望早點接觸Gohtml

聽着許式偉和謝孟軍的演講linux

發現go的網絡庫的確很強大,高負載利器,語言的一些精簡致使很容易寫出高效代碼,並且開發效率  很高 不,應該是很是高   。(rpcjson,xml,.....其餘一些自帶的庫也都很成熟)git

 

是否是傳說中的好東東,必須本身用了才能知道 github

ECUG視頻傳送們golang

www.youtube.com/watch?v=af7qOeN9Mvkweb

 

 

推薦一些相關書籍shell

學寫的話,固然 書籍更系統編程

 

推薦書籍:json

1.英文版《the way to go 》    中文版 《Go語言程序設計》  IVO BALBAERT

2.中文版  《學習Go語言》                        www.mikespook.com/learning-go/

3.  雨痕的  Go 學習筆記 第四版.pdf             https://github.com/qyuhen/book

4.英文版《Programming in Go 》  中文版《Go語言程序設計》 做者:Mark Summerfield     http://item.jd.com/11281696.html

5.英文版《The Go Programming Language》  做者:David Chisnall

6. 《 Network programming with Go》

7. 《Mastering Concurrency in Go - Nathan Kozyra》

 

若是是過web 相關

謝孟軍《Go Web編程》https://github.com/astaxie/build-web-application-with-golang/

 

 

查看本身的開發環境:

$lsb_release -a   

Ubuntu 12.04.3 LTS

$uname -a    (or  $cat /proc/version)

Linux 3.8.0-33-generic    gcc version 4.6.3

 

 

 

Operating system Architectures Notes

FreeBSD 8-STABLE or later amd64 Debian GNU/kFreeBSD not supported
Linux 2.6.23 or later with glibc amd64, 386, arm CentOS/RHEL 5.x not supported; install from source for ARM
Mac OS X 10.7 or later amd64 use the clang or gcc that comes with Xcode
Windows XP or later amd64, 386 use MinGW gcc. No need for cygwin or msys.

 

golang支持交叉編譯,也就是說你在32位平臺的機器上開發,能夠編譯生成64位平臺上的可執行程序。

環境變量說明:
$GOROOT  指向golang安裝以後的根目錄,windows平臺下默認爲c:\go,會在安裝過程當中由安裝程序自動寫入系統環境變量。
$GOARCH  目標平臺(編譯後的目標平臺)的處理器架構(38六、amd6四、arm)
$GOOS     目標平臺(編譯後的目標平臺)的操做系統(darwin、freebsd、linux、windows)
$GOBIN     指向安裝以後根目錄下的bin目錄,即$GOROOT/bin,windows平臺下 MSI安裝路徑 默認爲c:\go\bin,會在安裝過程當中由安裝程序自動添加到PATH變量中

 

以上   GOARCH ,  GOOS     均可以默認不設置

 

 

Go語言交叉編譯,運行在不一樣的操做系統

若用的Mac 64位,須要編譯一個Windows 32位的可執行程序,一句搞定 「CGO_ENABLED=0 GOOS=windows GOARCH=386 go build」

CGO_ENABLED設置是否須要使用CGO,本例子不須要,設置爲0,若是須要使用CGO編譯,設置爲1

 

 

 

 

 

linux 安裝golang=================

2種安裝方式

1. https://code.google.com/p/go/downloads/list  

直接下載 go1.2.linux-amd64.tar.gz

解壓命令 tar -zxvf go1.2.linux-amd64.tar.gz

 

PS.還有源碼包   go1.2.src.tar.gz(做爲碼農,不看源碼怎麼行,關於語言有疑問的能夠直接看代碼 :D )

         

2.命令行下載 

$hg clone -u release https://code.google.com/p/go


而後運行bash腳本安裝

$cd go/src
$./all.bash

運行all.bash後出現"ALL TESTS PASSED"字樣時纔算安裝成功。

(固然apt-get install golang 最簡單)

假設解壓到了$HOME/go中

 

 

系統級別

$cd /etc

$cat /etc/.profile

$ll  看此文件的權限

$sudo /etc/.profile

 

 

用戶級別

$cat $HOME/.profile      意思同樣$cat ~/.profile  ($HOME/.profile 或者 $HOME/.bashrc 均可以添加 一下環境變量)

 

參考:

 https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29

 

Linux中profile、bashrc、bash_profile之間的區別和聯繫 

http://blog.csdn.net/chenchong08/article/details/7833242

 

 

.bash_profile和.bashrc的什麼區別及啓動過程,超級詳細

http://bbs.chinaunix.net/thread-1924583-1-1.html

.bash_profile和.bashrc的什麼區別及啓動過程
.bash_profile和.bashrc的什麼區別
bash_profile和.bashrc的什麼區別

--------------------------------------------------------------------------------


/etc/profile:此文件爲系統的每一個用戶設置環境信息,當用戶第一次登陸時,該文件被執行.
並從/etc/profile.d目錄的配置文件中搜集shell的設置.
/etc/bashrc:爲每個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取.
~/.bash_profile:每一個用戶均可使用該文件輸入專用於本身使用的shell信息,當用戶登陸時,該
文件僅僅執行一次!默認狀況下,他設置一些環境變量,執行用戶的.bashrc文件.
~/.bashrc:該文件包含專用於你的bash shell的bash信息,當登陸時以及每次打開新的shell時,該
該文件被讀取.
~/.bash_logout:當每次退出系統(退出bash shell)時,執行該文件.

另外,/etc/profile中設定的變量(全局)的能夠做用於任何用戶,而~/.bashrc等中設定的變量(局部)只能繼承/etc/profile中的變量,他們是\"父子\"關係.

~/.bash_profile 是交互式、login 方式進入 bash 運行的
~/.bashrc 是交互式 non-login 方式進入 bash 運行的
一般兩者設置大體相同,因此一般前者會調用後者。

--------------------------------------------------------------------------------
在登陸Linux時要執行文件的過程以下:

在剛登陸Linux時,首先啓動 /etc/profile 文件,而後再啓動用戶目錄下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一個(根據不一樣的linux操做系統的不一樣,命名不同),

執行的順序爲:~/.bash_profile、 ~/.bash_login、 ~/.profile。
若是 ~/.bash_profile文件存在的話,通常還會執行 ~/.bashrc文件。

由於在 ~/.bash_profile文件中通常會有下面的代碼:
if [ -f ~/.bashrc ] ; then

. ./bashrc

fi

~/.bashrc中,通常還會有如下代碼:
if [ -f /etc/bashrc ] ; then

. /bashrc

fi

因此,~/.bashrc會調用 /etc/bashrc文件。最後,在退出shell時,還會執行 ~/.bash_logout文件。

執行順序爲:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

關於各個文件的做用域,在網上找到了如下說明:

(1)/etc/profile: 此文件爲系統的每一個用戶設置環境信息,當用戶第一次登陸時,該文件被執行. 並從/etc/profile.d目錄的配置文件中搜集shell的設置。

(2)/etc/bashrc: 爲每個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取。

(3)~/.bash_profile: 每一個用戶均可使用該文件輸入專用於本身使用的shell信息,當用戶登陸時,該文件僅僅執行一次!默認狀況下,他設置一些環境變量,執行用戶的.bashrc文件。

(4)~/.bashrc: 該文件包含專用於你的bash shell的bash信息,當登陸時以及每次打開新的shell時,該該文件被讀取。

(5) ~/.bash_logout:當每次退出系統(退出bash shell)時,執行該文件. 另外,/etc/profile中設定的變量(全局)的能夠做用於任何用戶,而~/.bashrc等中設定的變量(局部)只能繼承 /etc/profile中的變量,他們是"父子"關係。

(6)~/.bash_profile 是交互式、login 方式進入 bash 運行的~/.bashrc 是交互式 non-login 方式進入 bash 運行的一般兩者設置大體相同,因此一般前者會調用後者。



/etc/profile和/etc/environment等各類環境變量設置文件的用處

先將export LANG=zh_CN加入/etc/profile ,退出系統從新登陸,登陸提示顯示英文。

將/etc/profile 中的export LANG=zh_CN刪除,將LNAG=zh_CN加入/etc/environment,退出系統從新登陸,登陸提示顯示中文。

用戶環境創建的過程當中老是先執行/etc/profile而後在讀取/etc/environment。爲何會有如上所敘的不一樣呢?

應該是先執行/etc/environment,後執行/etc/profile。

/etc/environment是設置整個系統的環境,而/etc/profile是設置全部用戶的環境,前者與登陸用戶無關,後者與登陸用戶有關。

系統應用程序的執行與用戶環境能夠是無關的,但與系統環境是相關的,因此當你登陸時,你看到的提示信息,象日期、時間信息的顯示格式與系統環境的LANG是相關的,缺省LANG=en_US,若是系統環境LANG=zh_CN,則提示信息是中文的,不然是英文的。

對於用戶的SHELL初始化而言是先執行/etc/profile,再讀取文件/etc/environment.對整個系統而言是先執行/etc/environment。這樣理解正確嗎?

/etc/enviroment --> /etc/profile --> $HOME/.profile -->$HOME/.env (若是存在)

/etc/profile 是全部用戶的環境變量

/etc/enviroment是系統的環境變量

登錄系統時shell讀取的順序應該是
/etc/profile ->/etc/enviroment -->$HOME/.profile -->$HOME/.env
緣由應該是jtw所說的用戶環境和系統環境的區別了

若是同一個變量在用戶環境(/etc/profile)和系統環境(/etc/environment)有不一樣的值那應該是以用戶環境爲準了。

 

 

 

export GOROOT=$HOME/go
export GOBIN=$HOME/go/bin

export PATH=$PATH:$GOROOT/bin

source $HOME/.profile或者$HOME/.bashrc 更新配置

 具體參考http://godoc.golangtc.com/doc/install/source

 

而後是工做目錄,代碼放在這個目錄中

$ export GOPATH=$HOME/workproject




PS. arm樹莓派的話,也是能夠編譯執行的(內置gcc交叉編譯工具) 和linux 同樣設置,只不過,須要設置$GOARCH 爲arm,$GOOS



若是萬一你配置文件修改錯誤,致使ls, vim 等bash命令無效。直接用export能夠臨時恢復。
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin  
執行完以上的命令後,

你能夠從新執行 source /etc/profile 或者 source ~/.bashrc 命令來讓你的配置文件永久恢復生效


 ===============================================

 

 

windows 安裝go,  若是要用CGO,須要安裝MINGW ( 由於須要gcc)========

默認路徑是c:\go

 

1>.環境變量

    1.1>MSI環境變量已經設置OK,

    1.2>zip 須要本身設置環境變量

        全局變量

       添加

       GOROOT     c:\go

       GOBIN         c:\go\bin

       GOPATH      d:\workproject

 

       而後在path 在後面添加   xxxxxx;%GOROOT%;%GOBIN%;%GOPATH%;

 

【若成功,能夠看到如下version信息】

C:\go\>go version
go version go1.5.1 windows/amd64

 

 

2>.編譯

      而後管理員權限啓動cmd,

     進入【GOROOT  目錄】  編譯/test/helloworld.go

 而後試下編譯  go build helloworld.go

【若成功,能夠看到如下信息】

hello world

 

關於IDE

推薦下 國人開發的 liteide

配合IDE的話,載入*.go文件後,  點擊【編輯當前環境】

改爲以下信息(更具本身的OS來修改,個人是win10 64位,goroot 在c:\go\,)
==============

# native compiler windows

 
GOROOT=c:\go\
GOBIN= c:\go\bin\
GOARCH=amd64
GOOS=windows
#CGO_ENABLED=1
 
PATH=c:\mingw32\bin;%GOROOT%\bin;%PATH%
 
#LITEIDE_GDB=gdb
LITEIDE_MAKE=mingw32-make
LITEIDE_TERM=%COMSPEC%
LITEIDE_TERMARGS=
LITEIDE_EXEC=%COMSPEC%
LITEIDE_EXECOPT=/C

==============

 

點擊編譯,運行 就能夠看到結果了。

 

 

 

 

 

 

    1.5以上版本覺得 使用了自舉,因此須要用老版本的go 來編譯新版本,因此出現以下錯誤

=================

C:\go\src>all.bat
##### Building Go bootstrap tool.
cmd/dist
ERROR: Cannot find C:\Users\scott\Go1.4\bin\go.exe
"Set GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4."

==================

解決辦法: 下載1.4.x 版本的go 後(是須要MINGW gcc 編譯1.5的代碼), 設置GOROOT_BOOTSTRAP,GOROOT_BOOTSTRAP\bin,

 

       GOROOT_BOOTSTRAP     c:\go

而後運行all.bat,就能夠獲得新版本, 再把go目錄名字改下go1.4, go1.6改爲go

自舉

C:\go\src>make.bat

 

===========================

 

 

linux 能夠參考如下網頁

http://mikespook.com/2015/06/如何從源代碼構建-go-1-5-開發環境/

 

 

 

 

 卸載也是很重要的,(能夠經過go env 來了解GOROOT...信息 , 卸載也就知道在哪了)

 

Uninstalling Go

To remove an existing Go installation from your system delete the go directory. This is usually /usr/local/go under Linux, Mac OS X, and FreeBSD or c:\Go under Windows.

You should also remove the Go bin directory from your PATH environment variable. Under Linux and FreeBSD you should edit /etc/profile or $HOME/.profile. If you installed Go with the Mac OS X package then you should remove the /etc/paths.d/go file. Windows users should read the section about setting environment variables under Windows.

 

$go version  我是ubuntu14.04 默認安裝的go1.2.1版本

$go env 查看以前版本的go 的GOROOT、GOTOOLDIR、GOPATH等信息

 

 

默認安裝版本 須要刪除

1. /usr/lib/go

2. /usr/share/go

3. /usr/bin/go

 

而後更新本身的新版本的go環境變量 就能夠了

go version

go env

都正常了

 

 

 

 =================

 

linux 用go1.4自舉編譯go1.7

1.添加環境變量

vim ~/.bashrc

export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/goWorkproject

export GOROOT_BOOTSTRAP=/usr/local/go1.4

更新環境變量  source ~/.bashrc

2.進入go1.7的目錄  /usr/local/go

cd go/src/

運行 ./make.bash

.......

Installed Go for linux/amd64 in /usr/local/go
Installed commands in /usr/local/go/bin

 

查詢版本

root@iZ25290crlqZ:/usr/local/go/src# go version
go version go1.7 linux/amd64

 

OK就算完成了。

 

http://studygolang.com/topics/1852

相關文章
相關標籤/搜索