【发布时间】:2015-06-25 09:35:50
【问题描述】:
我正在尝试各种包管理器产品,嗯,Go 产品。我喜欢我在gopm 中读到的内容——简单。然而,到目前为止,我还无法克服第一个障碍。这就是我正在做的事情
- 通过
go get github.com/gpmgo/gopm从源安装gopm - 检查它是否已安装。
whereis gopm返回/opt/gopkg/bin/gopm - 为了更好的措施检查我的环境变量。
echo $GOPATH返回/opt/gopkg。 -
在
/var/www/html/rest下创建main.go。代码读取主包 导入(“github.com/ataxie/beego”)
函数 main(){ println("beego版本:beego.VERSION) }
创建 .gopm 文件。它读到 [目标] 路径=休息
-
切换到
/var/www/html/rest文件夹。此时它包含root 根 20 Jun 25 09:13 .gopmfile 根根 107 Jun 25 09:13 main.go
现在发出
gopm build。它回来了 [GOPM] 15-06-25 09:28:13 [致命]:未安装包 github.com/ataxie/beego检查
/var/www/html/rest文件夹。它现在包含一个附加文件夹.vendor,该文件夹又包含文件夹src,而该文件夹又具有指向/var/www/html/rest文件夹的符号链接。
我在这里做错了什么?
【问题讨论】:
-
我认为 gopm 不会成为 go 的常规包管理器,因为
go get对人们来说足够简单和友好。我建议使用go get,你会得到SO的大力支持。 -
@Jiang Fair 点。但是,这不会忽略包版本管理吗?
-
嗯,目前一个 go 包只是一组源代码(我们严格要求纯 go,没有用 c/c++ 编写的动态库)。所以我认为源代码的版本管理是 git 的范围,这就是为什么
go get基本上只是在做一个 git clone。 -
像大多数人一样,我使用 Mercurial 和 Git,我发现 Glock 对这些非常有效。 Gopm 似乎试图填补一个不存在的空白:一个没有版本控制系统的空间。这让我很困惑。
-
经过大量搜索后,我或多或少地选择了Bunch。我喜欢它的许多地方之一是它模仿了 NPM 的行为——一个很好的复制模型。
标签: go package-managers