go语言学习笔记 — 基础 — go工具:一键获取源代码,编译并安装 —— go get

Posted Locutus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 基础 — go工具:一键获取源代码,编译并安装 —— go get相关的知识,希望对你有一定的参考价值。

我们可以使用go get工具,借助代码管理工具远程拉取或更新代码包(及其依赖),并自动完成编译和安装,整个过程像安装一个APP一样简单。


远程包的路径格式

go代码可以被托管到github.com这样的托管网站。这些网站的项目包路径都有一个共同的标准:

网站域名/作者或机构/项目名

github.com/golang/go

获取远程包:go get -v 远程包

在完成设置GOPATH后,我们可以直接使用go get,格式如下:go get -v 远程包名路径,就可以下载这个包到我们$GOPATH/src目录下,这样我们就可以像导入其他包一样import了。

# go get -v github.com/davyxu/cellnet

# cd ~/go/src/github.com/davyxu/cellnet

# ls


# go get -v github.com/davyxu/tabtoy

# cd ~/go/src/github.com/davyxu/tabtoy

# ls

# ~/go/bin/tabtoy --mode

注:go get的本质是使用git,hg等源代码控制工具下载这些库的源代码,所以在使用之前必须确保安装了这些源代码版本控制工具。


更新已有的远程包:go get -u -v 远程包

如果我们使用的远程包有更新,我们可以使用如下命令进行更新。

# go get -u -v github.com/spf13/cobra/cobra

获取gitlab私有库包

如果是私有的git库怎么获取呢?比如在公司使用gitlab搭建的git仓库,设置的都是private权限的。这种情况下我们可以配置下git,就可以了,在此之前你公司使用的gitlab必须要在7.8之上。然后要把我们http协议获取的方式换成ssh。

假设你要获取http://git.flysnow.org,对应的ssh地址为git@git.flysnow.org,那么要在终端执行如下命令:

# git config --global url."git@git.flysnow.org:".insteadOf "http://git.flysnow.org/"

这段配置的意思就是,当我们使用http://git.flysnow.org/获取git库代码的时候,实际上使用的是git@git.flysnow.org这个url地址获取的,也就是http到ssh协议的转换,是自动的,他其实就是在我们的~/.gitconfig配置文件中,增加了如下配置:

[url "git@git.flysnow.org:"]
    insteadOf = http://git.flysnow.org/

现在我们就可以使用go get直接获取了,比如:

# go get -v -insecure git.flysnow.org/hello

仔细看,多了一个-insecure标识,因为我们使用的是http协议, 是不安全的。当然如果你自己搭建的gitlab支持https协议,就不用加-insecure了,同时把上面的url insteadOf换成https的就可以了。


附加参数

附加参数备注
-v显示操作流程的日志信息,方便检查错误
-u下载丢失的包,但不会更新已经存在的包
-d只下载,不安装
-insecure允许使用不安全的http方式进行下载操作

以上是关于go语言学习笔记 — 基础 — go工具:一键获取源代码,编译并安装 —— go get的主要内容,如果未能解决你的问题,请参考以下文章

go语言学习笔记 — 基础 — go工具:编译 —— go build

go语言学习笔记 — 基础 — go工具:编译并安装 —— go install

go语言学习笔记 — 基础 — go工具:编译后运行 —— go run

go语言学习笔记 — 基础 — go工具:性能分析,发现代码性能问题的具体位置 —— go pprof

go语言学习笔记 — 基础 — go工具(5.2): 基准测试 (性能测试)—— 获得代码内存占用和运行效率的性能数据

go语言学习笔记 — 基础 — go工具(5.1):单元测试 —— 测试和验证代码的框架