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