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

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


咨詢
建站咨詢
