相当于 RubyGems?

equivalent of RubyGems?

我来自 ruby 背景,我刚刚开始学习围棋。是否有安装与 RubyGems 相当的第 3 方库的标准方法?

自从go1.11发布后,我们有了官方的go包管理工具,Go Modules.

go modules 和其他包管理工具的区别在于go modules 不依赖$GOPATH。该项目必须放在 $GOPATH 之外。如果您的项目已经在 $GOPATH 中,但您想使用包管理工具,那么我建议您查看下面的旧答案。

用法:

mkdir testproject
cd testproject

# init project as go module with root package name is testproject
go mod init testproject

# install 3rd party library, it will be stored inside testproject/vendor
go get github.com/labstack/echo
go get github.com/novalagung/gubrak

go mod init 命令生成 Go.mod 文件(类似于 ruby 的 Gemfile)。您可以通过通常的 go get 命令安装第 3 方库,或者通过将库元数据添加到 Go.mod 文件然后执行 go mod tidy.

关于 Go 模块的更多信息:https://blog.golang.org/using-go-modules

旧答案

Go 也有包管理工具,叫做 dep

用法示例:

cd $GOPATH/src
mkdir testproject
cd testproject

# init project
dep init

# install 3rd party library
dep ensure -add github.com/labstack/echo
dep ensure -add github.com/novalagung/gubrak

dep 生成 Gopkg.toml 文件(类似于 ruby 的 Gemfile)。您可以通过 dep ensure -add 命令安装第三方库,或者将库元数据添加到 Gopkg.toml 然后执行 dep ensure.

顺便说一句,除了 dep 之外,几乎没有其他选择。有关更多信息,请查看 https://github.com/golang/go/wiki/PackageManagementTools.