# 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找到。