mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 02:16:48 +08:00
37 lines
2.0 KiB
Markdown
37 lines
2.0 KiB
Markdown
# 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找到。 |