Files
the-way-to-go_ZH_CN/eBook/09.7.md
2014-09-19 16:51:13 +08:00

2.0 KiB
Raw Blame History

9.7使用go install安装自定义包

go install是Go中自动包安装工具如需要将包安装到本地它会从远端仓库下载包检出编译安装一气呵成。

在包安装前的先决条件是要自动处理包自身依赖关系的安装。被依赖的包也会安装到子目录下,但是没有文档和示例:可以到网上浏览。

被安装包的列表可以在$GORROT/goinstall.log找到。

go install使用了GOPATH变量(参见2.2章节)。

远端包(参见9.5章节)

假设我们要安装一个有趣的包tideland(它包含了许多帮助示例,参见http://code.google.com/p/tideland-cgl)。

因为我们需要创建目录在Go安装目录下所以我们需要使用root或者su的身份执行命令。

确保Go环境变量已经设置在root用户下的./bashrc文件中。

使用命令安装go install tideland-cgl.googlecode.com/hg

可执行文件hg.a将被放到$GOROOT/pkg/linux_amd64/tideland-cgl.googlecode.com目录下源码文件被放置在$GOROOT/src/tideland-cgl.googlecode.com/hg目录下同样有个hg.a放置在_obj的子目录下。

现在就可以在go代码中使用这个包中的功能了例如使用报名cgl导入

import cgl "tideland-cgl.googlecode.com/hg"

从Go1起go install安装Google Code的导入路径形式是"code.google.com/p/tideland-cgl"

升级到新的版本:

更新到新版本的Go之后本地安装包的二进制文件将全被删除。当调用install-a工具将通过读取$GOROOT/goinstall.log重新安装以前的安装包。如果你想更新重编译重安装所有的go安装包可以使用go install -a -u -clean 或者 go install -a -u -nuke

go的版本发布的很频繁所以需要注意发布版本和包的兼容性。go1之后都是自己编译自己了。

go install同样可以使用go install编译链接并安装本地自己的包参见9.8.2章节。

更多信息可以在http://golang.org/cmd/go和http://golang.org/cmd/goinstall找到