Golang環(huán)境安裝和依賴管理

Golang一種靜態(tài)強(qiáng)類型梧乘、編譯型、并發(fā)型夹供,并具有垃圾回收功能的編程語言。Golang提供了方便的安裝包哮洽,支持Windows、Linux鸟辅、Mac系統(tǒng)。

下載安裝包

Golang的官網(wǎng)是https://golang.org/匪凉,如果官網(wǎng)打不開,可以訪問https://golang.google.cn/這個(gè)域名洒缀。在官網(wǎng)點(diǎn)擊Download Go會進(jìn)入下載頁瑰谜,可以看到這里提供了針對各個(gè)系統(tǒng)的安裝包,也提供了源碼树绩,可以下載源碼編譯安裝萨脑。

下載運(yùn)行安裝包后,在terminal中執(zhí)行g(shù)o env命令饺饭,如果出現(xiàn)下面的輸出說明已經(jīng)安裝成功渤早。

GOROOT與GOPATH

仔細(xì)看上面的輸出,會發(fā)現(xiàn)其中有一個(gè)GOPATH瘫俊,又有一個(gè)GOROOT,那么到底哪個(gè)才是Golang的運(yùn)行環(huán)境呢扛芽。

首先訪問一下GOROOT這個(gè)路徑,會發(fā)現(xiàn)其中包含bin登下、lib等文件夾叮喳。GOROOT就是Golang的安裝路徑被芳,其中包含Golang編譯馍悟、工具、標(biāo)準(zhǔn)庫等锣咒,在安裝后就會存在。

和GOROOT不同壹将,GOPATH是工作空間路徑毛嫉,從go 1.8開始妇菱,如果GOPATH沒有被設(shè)置承粤,會有一個(gè)默認(rèn)值,在Unix上為$HOME/go仙粱,在Windows上為%USERPROFILE%/go彻舰,當(dāng)調(diào)用go build時(shí)伐割,它會在GOPATH中尋找源碼刃唤。訪問一下GOPATH這個(gè)路徑,會發(fā)現(xiàn)其中只有pkg硬霍、bin笼裳、src三個(gè)文件夾唯卖,并且里面基本是空的躬柬,這是一個(gè)約定的目錄結(jié)構(gòu),src文件夾用來存放源碼撩轰、pkg存放編譯后生成的文件昧廷,bin存放編譯后生成的可執(zhí)行文件堪嫂。項(xiàng)目代碼需要在GOPATH/src路徑下木柬。

GOPATH路徑下出了存放項(xiàng)目代碼,還存放所有通過go get安裝的依賴恶复,項(xiàng)目代碼和依賴代碼是平級的速挑,當(dāng)各個(gè)項(xiàng)目都有很多依賴的時(shí)候谤牡,這個(gè)GOPATH路徑下的代碼量會多的嚇人姥宝,并且難以拆分。

Vendor

2015年套么,Go 1.5加入了一個(gè)試驗(yàn)性的vendor機(jī)制(到2016年的Go 1.6版變?yōu)槟J(rèn)開啟),vendor機(jī)制就是在項(xiàng)目中加入了vendor文件夾胚泌,用于存放依賴,這樣就可以將不同項(xiàng)目的依賴隔離開玷室。

當(dāng)使用go run或者go build命令時(shí),會首先從當(dāng)前路徑下的vendor文件夾中查找依賴壁公,如果vendor不存在绅项,才會從GOPATH中查找依賴。

然而我們安裝依賴通常使用go get或者go install命令快耿,這兩個(gè)命令依舊會把依賴安裝到GOPATH路徑下。

包管理工具dep

Vendor只是go官方提供的一個(gè)機(jī)制掀亥,但是包管理的問題依然沒有解決,并且也沒有對依賴進(jìn)行版本管理遏片。如果要實(shí)現(xiàn)上述的功能撮竿,還需要借助包管理工具。

Go官方給出了包管理工具的對比:https://github.com/golang/go/wiki/PackageManagementTools

dep是官方的試驗(yàn)性包管理工具幢踏,可以通過如下腳本安裝

curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh

安裝完成后,進(jìn)入項(xiàng)目路徑房蝉,執(zhí)行

dep init

項(xiàng)目中會出現(xiàn)兩個(gè)文件一個(gè)目錄

Gopkg.toml
Gopkg.lock
vendor

dep包管理的流程如圖

  • solving功能搭幻,它將當(dāng)前項(xiàng)目中的導(dǎo)入包和Gopkg.toml中的規(guī)則作為輸入,不可變的依賴關(guān)系圖作為傳遞完成后的輸出檀蹋,形成Gopkg.lock。

  • vendor功能攻臀,將Gopkg.lock中的信息作為輸入焕数,確保項(xiàng)目編譯時(shí)能使用在Gopkg.lock文件中鎖定的版本刨啸。

使用如下命令添加依賴

dep ensure -add [github.com/gin-gonic/gin](http://github.com/gin-gonic/gin)

使用如下命令更新Gopkg.lock

dep ensure -update

歡迎關(guān)注知乎專欄【Golang私房菜】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末设联,一起剝皮案震驚了整個(gè)濱河市灼捂,隨后出現(xiàn)的幾起案子离例,更是在濱河造成了極大的恐慌悉稠,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耀盗,死亡現(xiàn)場離奇詭異卦尊,居然都是意外死亡岂却,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門躏哩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來高每,“玉大人洼怔,你說我怎么就攤上這事躬贡“簦” “怎么了拨拓?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長婿着。 經(jīng)常有香客問我,道長竟宋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任徒欣,我火速辦了婚禮,結(jié)果婚禮上打肝,老公的妹妹穿的比我還像新娘挪捕。我一直安慰自己,他們只是感情好级零,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鉴嗤,像睡著了一般亥贸。 火紅的嫁衣襯著肌膚如雪躬窜。 梳的紋絲不亂的頭發(fā)上炕置,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天,我揣著相機(jī)與錄音默垄,去河邊找鬼甚纲。 笑死口锭,一個(gè)胖子當(dāng)著我的面吹牛介杆,可吹牛的內(nèi)容都是我干的春哨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼椰拒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了燃观?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤番川,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后爽彤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缚陷,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡往核,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了虎锚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡窜护,死狀恐怖非春,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情奇昙,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布羊初,位于F島的核電站什湘,受9級特大地震影響长赞,放射性物質(zhì)發(fā)生泄漏闽撤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一柳恐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧乐设,春花似錦、人聲如沸近尚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至哈街,卻和暖如春拒迅,著一層夾襖步出監(jiān)牢的瞬間骚秦,已是汗流浹背璧微。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胞得,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓阶剑,卻偏偏與公主長得像嗤详,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子葱色,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容