新聞中心
go get 命令可以借助代碼管理工具通過遠(yuǎn)程拉取或更新代碼包及其依賴包,并自動(dòng)完成編譯和安裝。整個(gè)過程就像安裝一個(gè) App 一樣簡(jiǎn)單。

這個(gè)命令可以動(dòng)態(tài)獲取遠(yuǎn)程代碼包,目前支持的有 BitBucket、GitHub、Google Code 和 Launchpad。在使用 go get 命令前,需要安裝與遠(yuǎn)程包匹配的代碼管理工具,如 Git、SVN、HG 等,參數(shù)中需要提供一個(gè)包名。
這個(gè)命令在內(nèi)部實(shí)際上分成了兩步操作:第一步是下載源碼包,第二步是執(zhí)行 go install。下載源碼包的 go 工具會(huì)自動(dòng)根據(jù)不同的域名調(diào)用不同的源碼工具,對(duì)應(yīng)關(guān)系如下:
BitBucket (Mercurial Git)
GitHub (Git)
Google Code Project Hosting (Git, Mercurial, Subversion)
Launchpad (Bazaar)
所以為了 go get 命令能正常工作,你必須確保安裝了合適的源碼管理工具,并同時(shí)把這些命令加入你的 PATH 中。其實(shí) go get 支持自定義域名的功能。
參數(shù)介紹:
- -d 只下載不安裝
- -f 只有在你包含了 -u 參數(shù)的時(shí)候才有效,不讓 -u 去驗(yàn)證 import 中的每一個(gè)都已經(jīng)獲取了,這對(duì)于本地 fork 的包特別有用
- -fix 在獲取源碼之后先運(yùn)行 fix,然后再去做其他的事情
- -t 同時(shí)也下載需要為運(yùn)行測(cè)試所需要的包
- -u 強(qiáng)制使用網(wǎng)絡(luò)去更新包和它的依賴包
- -v 顯示執(zhí)行的命令
遠(yuǎn)程包的路徑格式
Go語言的代碼被托管于 Github.com 網(wǎng)站,該網(wǎng)站是基于 Git 代碼管理工具的,很多有名的項(xiàng)目都在該網(wǎng)站托管代碼。其他類似的托管網(wǎng)站還有 code.google.com、bitbucket.org 等。
這些網(wǎng)站的項(xiàng)目包路徑都有一個(gè)共同的標(biāo)準(zhǔn),參見下圖所示。
圖:遠(yuǎn)程包路徑格式
圖中的遠(yuǎn)程包路徑是 Go語言的源碼,這個(gè)路徑共由 3 個(gè)部分組成:
- 網(wǎng)站域名:表示代碼托管的網(wǎng)站,類似于電子郵件 @ 后面的服務(wù)器地址。
- 作者或機(jī)構(gòu):表明這個(gè)項(xiàng)目的歸屬,一般為網(wǎng)站的用戶名,如果需要找到這個(gè)作者下的所有項(xiàng)目,可以直接在網(wǎng)站上通過搜索“域名/作者”進(jìn)行查看。這部分類似于電子郵件 @ 前面的部分。
- 項(xiàng)目名:每個(gè)網(wǎng)站下的作者或機(jī)構(gòu)可能會(huì)同時(shí)擁有很多的項(xiàng)目,圖中標(biāo)示的部分表示項(xiàng)目名稱。
go get+ 遠(yuǎn)程包
默認(rèn)情況下,go get 可以直接使用。例如,想獲取 go 的源碼并編譯,使用下面的命令行即可:
$ go get github.com/davyxu/cellnet
獲取前,請(qǐng)確保 GOPATH 已經(jīng)設(shè)置。Go 1.8 版本之后,GOPATH 默認(rèn)在用戶目錄的 go 文件夾下。
cellnet 只是一個(gè)網(wǎng)絡(luò)庫,并沒有可執(zhí)行文件,因此在 go get 操作成功后 GOPATH 下的 bin 目錄下不會(huì)有任何編譯好的二進(jìn)制文件。
需要測(cè)試獲取并編譯二進(jìn)制的,可以嘗試下面的這個(gè)命令。當(dāng)獲取完成后,就會(huì)自動(dòng)在 GOPATH 的 bin 目錄下生成編譯好的二進(jìn)制文件。
$ go get github.com/davyxu/tabtoy
go get 使用時(shí)的附加參數(shù)
使用 go get 時(shí)可以配合附加參數(shù)顯示更多的信息及實(shí)現(xiàn)特殊的下載和安裝操作,詳見下表所示。
| 附加參數(shù) | 備 注 |
|---|---|
| -v | 顯示操作流程的日志及信息,方便檢查錯(cuò)誤 |
| -u | 下載丟失的包,但不會(huì)更新已經(jīng)存在的包 |
| -d | 只下載,不安裝 |
| -insecure | 允許使用不安全的 HTTP 方式進(jìn)行下載操作 |
網(wǎng)頁標(biāo)題:創(chuàng)新互聯(lián)GO教程:go get命令——一鍵獲取代碼、編譯并安裝
文章地址:http://www.dlmjj.cn/article/dpihcii.html


咨詢
建站咨詢
