|
当 GVM 被告知使用新版本时,它会更改为新的 $GOPATH,默认 gloabl pkgset 应用于该版本:
[chris@marvin]$ echo $GOPATH/home/chris/.gvm/pkgsets/go1.12.9/global-
[chris@marvin]$ gvm pkgset list-
gvm go package sets (go1.12.9)-
=> global
尽管默认情况下没有安装额外的包,但是全局 pkgset 中的包对于使用该特定版本的 Go 的任何项目都是可用的。
现在,假设你正在启用一个新项目,它需要一个特定的包。首先,使用 GVM 创建一个新的 pkgset,名为 introToGvm:
[chris@marvin]$ gvm pkgset create introToGvm-
[chris@marvin]$ gvm pkgset use introToGvmNow using version go1.12.9@introToGvm-
[chris@marvin]$ gvm pkgset list-
gvm go package sets (go1.12.9)-
global=> introToGvm
如上所述,pkgset 的一个新目录被添加到 $GOPATH:
[chris@marvin]$ echo $GOPATH/home/chris/.gvm/pkgsets/go1.12.9/introToGvm:/home/chris/.gvm/pkgsets/go1.12.9/global
将目录更改为预先设置的 introToGvm 路径,检查目录结构,这里使用 awk 和 bash 完成。
[chris@marvin]$ cd $( awk -F':' '{print $1}' <<< $GOPATH )[chris@marvin]$ pwd/home/chris/.gvm/pkgsets/go1.12.9/introToGvm-
[chris@marvin]$ lsoverlay pkg src
请注意,新目录看起来很像普通的 $GOPATH。新的 Go 包使用同样的 go get 命令下载并正常使用,且添加到 pkgset 中。
例如,使用以下命令获取 gorilla/mux 包,然后检查 pkgset 的目录结构:
[chris@marvin]$ go get github.com/gorilla/mux[chris@marvin]$ tree[chris@marvin introToGvm ]$ tree.├── overlay│ ├── bin│ └── lib│ └── pkgconfig├── pkg│ └── linux_amd64│ └── github.com│ └── gorilla│ └── mux.asrc/└── github.com └── gorilla └── mux ├── AUTHORS ├── bench_test.go ├── context.go ├── context_test.go ├── doc.go ├── example_authentication_middleware_test.go ├── example_cors_method_middleware_test.go ├── example_route_test.go ├── go.mod ├── LICENSE ├── middleware.go ├── middleware_test.go ├── mux.go ├── mux_test.go ├── old_test.go ├── README.md ├── regexp.go ├── route.go └── test_helpers.go
如你所见,gorilla/mux 已按预期添加到 pkgset $GOPATH 目录中,现在可用于使用此 pkgset 项目了。
GVM 让 Go 管理变得轻而易举 (编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|