1. 程式人生 > >一、Go學習筆記:安裝與配置

一、Go學習筆記:安裝與配置


Mac、Windows與Linux平臺下如何下載安裝Go,及其工作區配置

本系列學習筆記均改編自Go語言中文網,其中的教程是翻譯自國外教程,其中有一些語句翻譯不通難以理解。故對其進行整理並在本系列教程中加入了自己的理解和程式碼示例。

為什麼學習Go這裡我就不多說了,每門語言都有自己的優缺點,既然決定學Go,那就好好學,術業專攻,總會有其用武之地的。

下載

Go支援三大平臺,作為國內使用者,可以從以下地址下載相應平臺的安裝包Go語言中文網

安裝

Windows、MacOS平臺

Windows與Mac平臺下的安裝包均是一個可執行檔案,只需要下載下來雙擊執行即可,所有選項直接點選下一步按照預設配置即可。在windows平臺下也可以更改預設安裝路徑c:\Go

,例如我按照個人習慣更改為了C:\Program Files\Go目錄,而Mac系統就沒辦法更改,預設安裝在了/usr/local/go目錄下。

安裝完成後,會自動將Go安裝目錄中的bin目錄新增到Mac、Windows的環境變數中,bin目錄中包含了go的可執行命令,這時我們的終端就可以識別到go命令了,例如執行以下命令檢視go的版本

C:\Users\kimzi>go version
go version go1.11 windows/amd64

Linux平臺

可以直接在linux上下載安裝包

wget https://studygolang.com/dl/golang/go1.11.linux-amd64.tar.gz

下載完成後將壓縮包解壓到go目錄

tar -zxf go1.11.linux-amd64.tar.gz go

將解壓目錄移動至/usr/local目錄下,當然你也可以放在任何你喜歡的位置

mv go /usr/local

我們需要配置相應的環境變數,go命令才能被找到,編輯vim /etc/profile檔案,新增如下內容,如果你不是放在/usr/local目錄下,就替換為自己存放的目錄。

export PATH=$PATH:/usr/local/go/bin

之後重新整理下環境變數

source /etc/profile

這時go的基本安裝就完成了,我們可以執行以下命令看看是否安裝成功。

[[email protected]
]~# go version go version go1.11 linux/amd64

環境配置

上面不是已經安裝好了Go,並且可以執行Go命令了,為啥還要配置呢?這和Go的依賴安裝和查詢機制有關係,首先我們需要了解Go中的兩個環境變數GOROOTGOPATH。(其實還有一個GOBIN,一般不配置,這裡就不多介紹了)

在前面Linux安裝中我們將安裝目錄中的bin目錄配置到了環境變數(windows與mac自動幫我們配置了),代表我們可以在終端中執行go的可執行檔案了,如go, gofmt,godoc,但是僅此而已。

GOROOT

首先我們來了解下Go專案的編譯過程。在Go中編譯原始碼時,會連同其依賴的原始碼檔案(系統庫、第三方庫) 一塊編譯,最終生成一個對應平臺的可執行檔案,可以直接執行而不依賴任何基礎環境,可以理解為go在編譯時,將go自己的系統庫也編譯了進去。那麼Go怎麼知道他的系統庫原始碼檔案在哪呢?這就是GOROOT的作用了。

一句話解釋:GOROOT是用來標識Go的安裝路徑的,以便能夠在編譯專案時能夠找到依賴的Go的系統庫。Go的安裝目錄下有一個src資料夾,這個資料夾裡面放的是go的系統原始碼檔案,我們在寫go專案時,需要引入這些go的系統包的。在編譯時,go會將其依賴的系統包一塊編譯生成一個可執行檔案,而GOROOT就是標識Go原始碼檔案的位置,這樣編譯時才能夠找到系統包的原始碼並編譯,要不然編譯的時候找不到就壞事了。

做個對比,在Java中依賴大部分是以編譯好的jar包形式存在的,我們只需要編寫自己的程式碼並編譯,連同依賴的jar包一塊打包成一個war或者jar包即可,之後在要執行的機器上安裝jre環境即可執行。與go比較我覺得go就省事多了,也是喜歡go的原因之一。

所以在上面的基礎上我們還需要配置GOROOT環境變數,在Windows與Mac系統中安裝時已經幫我們自動配置好了,可以自己到環境變數檢視一下,或者使用go env命令檢視,如下

C:\Users\kimzi>go env
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\kimzi\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=D:\WorkSpace\Go
set GOPROXY=
set GORACE=
set GOROOT=C:\Program Files\Go
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\kimzi\AppData\Local\Temp\go-build584024986=/tmp/go-build -gno-record-gcc-switches

Linux系統中編輯vim /etc/profile增加以下配置,並重新整理source /etc/profile即可。

GOROOT="/usr/local/go"

其實三大平臺上GOROOT都可以不配置,只要我們在path中配置了go安裝目錄的bin目錄,go就會自己推測GOROOT的位置,就是bin的上級目錄。當沒有配置GOROOT時,執行go env命令,同樣可以正確輸出GOROOT變數的值

GOPATH

GOPATH可以簡單理解為工作空間,也就是workspace,是我們寫專案程式碼的存放位置。例如我喜歡在D:\WorkSpace\Go資料夾中寫Go相關的專案,我會將GOPATH定義為D:\WorkSpace\Go

在下一篇文章中會介紹工作空間中的目錄結構,以方便我們能瞭解go的工作方式以及正確的位置編寫程式碼。

相關推薦

Go學習筆記安裝配置

Mac、Windows與Linux平臺下如何下載安裝Go,及其工作區配置 本系列學習筆記均改編自Go語言中文網,其中的教程是翻譯自國外教程,其中有一些語句翻譯不通難以理解。故對其進行整理並在本系列教程中加入了自己的理解和程式碼示例。 為什麼學習Go這裡我

Go 學習筆記Println Printf 的區別,以及 Printf 的詳細用法

Println 與Printf 都是fmt 包中的公共方法,在需要列印資訊時需要用到這二個函式,那麼這二個函式有什麼區別呢? Println :可以打印出字串,和變數 Printf : 只可以打印出格式化的字串,可以輸出字串型別的變數,不可以輸出整形變數和整

Linux學習筆記虛擬機器設定中的各種網路連線方式詳解

說明:我本機安裝的VMWare10,吳老師的視訊教程用的是VirtualBox,配置虛擬機器連線方式是HostOnly。我在本機用VMWare使用HostOnly連線方式未配置成功:虛擬機器能ping通宿主機,但是宿主機ping不同虛擬機器,不知原因何在。因此改用

Go學習筆記HelloWorld示例及工作目錄

瞭解GOPATH目錄下的目錄結構 ,對於初學者而言只需瞭解src就行。 |- WorkSpace |- src |- pkg |- bin 本系列學習筆記部分改編自Go語言中文網,其中的教程是翻譯自國外教程,其中有一些語句翻譯不通難以理解。故

二十Oracle學習筆記編寫函式和觸發器

一、函式或過程的選擇     1.如果要進行DML(增刪改),選擇儲存過程     2.如果沒有DML,選擇函式     二、函式 1.格式 create or replace function 函式名(引數1 型別,引數2 型別, 。。。) return

菜鳥運維筆記安裝配置Apacheserver

str .cn apach tps 官網 壓縮 ron entos 本地 前幾天在在阿裏花了49.5買了一個月的主機。試著好用再續費吧。 地域:青島可用區:青島可用區ACPU:1核內存:512MB帶寬:1Mbps操作系統:CentOS 6.5 64位雲盾:是

Windows下Git的安裝配置

lan 版本說明 鎖定 檢出 圖形 客戶 ads 姓名 官方網站 一、下載Git安裝包   1、打開Git的官方網站:https://git-scm.com/   2、找到下載頁:https://git-scm.com/downloads   3、找到Windows版本下載

MongoDB學習筆記(三)——安裝配置MongoDB(Linux)

前一篇博文講解了如何安裝與配置MongoDB的windows版,本篇博文接著上一篇講解如何在Linux系統中安裝與配置MongoDB,為了演示,我問同事要了它的雲伺服器用於演示,當然我自己也有,但是已經安裝了,就不解除安裝重新裝了[笑臉]。 下載Linux版的

ELK學習記錄二 elasticsearchlogstash及kibana的安裝配置

jre_home 支持 number yml num des 安裝包 soft filters 註意事項: 1.ELK版本要求5.X以上,本人使用版本:elasticsearch-6.0.0、kibana-6.0.0-linux-x86_64、logstash-6.0.0.

GreenPlum學習筆記date_partextract提取日期時間時間差

sta 抽取 提取 pan hour 日期時間 str 類型 art   GP可以使用date_part / extract從日期時間類型中抽取部分內容。 方法一:extract   格式:extract(field from source) extract函數從日期、時

Go基礎程式設計遞迴函式函式型別匿名函式閉包

1. 遞迴函式 遞迴指函式可以直接或間接的呼叫自身。 遞迴函式通常有相同的結構:一個跳出條件和一個遞迴體。所謂跳出條件就是根據傳入的引數判斷是否需要停止遞迴,而遞迴體則是函式自身所做的一些處理。 //通過迴圈實現1+2+3……+100 func Test01() int { i

go學習筆記2.變數型別常量

基本型別 1.基本型別列表 複製程式碼程式碼如下: 型別        長度     說明 bool         1      true/false,預設false, 不能把非0值當做true(不用數字代表true/false) byte        

MySQL學習筆記definersql security

proc gin clas 默認 value 操作 有關 col 存儲過程   在以下例子中,出現definer於sql security invoker,導致不解,遂學習一翻。 # 創建存儲過程 DELIMITER $$ CREATE DEFINER = Hider@l

15TX2學習筆記--TX2安裝CUDA8.0

一、CUDA介紹 1   二、安裝方式 1、使用如下方式安裝 $ wget http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/013/linux-x64/cuda-re

學習python第一步安裝配置

半路出家學前端,幹了兩年,其他程式語言沒接觸過,被同事用python自動抓取網頁資料的小程式震撼,決定了解一下 配置:win10系統,python 3.7.1 ,Pycharm 2018.2.4 安裝 安裝python Python官

java學習筆記方法陣列

方法: 方法的定義與使用: java中方法就是函式,將實現某些功能的程式碼封裝到方法中。 /* 概念:就是完成某個功能的程式碼,函式就是方法 格式: 修飾符 返回值型別 方法名(引數型別 引數名1,引數型別 引數名2....){ 方法體語句: return 返回值:

Linux學習筆記之Linux 常見命令

文字內容來自部落格園linux常見命令,圖片為實操截圖 Linux 命令語法 命令格式: 命令 【-選項】【引數】   例子:   ls -la /etc   說明: ①、個別命令使用不遵循此格式 ②、當有多個選項時,可以寫在一起 ③、簡化選項(一般用一個-

Java技術學習筆記RMIRPC的區別

一:RPC 遠端過程呼叫RPC(Remote Procedure Call Protocol)遠端過程呼叫協議,通過網路從遠端計算機上請求呼叫某種服務。一次RPC呼叫的過程大概有10步:  1.執行客戶端呼叫語句,傳送引數  2.呼叫本地系統傳送網路訊息  3.訊息傳送到遠端主機  4.伺服器得到訊息並取得引

Robot Framework學習筆記變數常量基礎

  (1)常量基礎 常量主要有:環境變數、數值常量、特殊字元常量、系統保留變數。 常量識別符號:$,其中環境變數識別符號為% 常量格式:%{}   或者${} 環境變數例子:%{JAVA_HOME} 數值常量例子:${2.9},${3} &n

mongodb學習-1安裝基本語句

1.安裝MongoDB     - 安裝     - 配置環境變數         C:\Program Files\MongoDB\Server\3.2\bin     - 在c盤根目錄         - 建立一個資料夾 data         - 在data中建立一個