【问题标题】:How to use package manager, gopm如何使用包管理器 gopm
【发布时间】: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


【解决方案1】:

您没有在 .gopmfile 文件中包含依赖项部分,该部分应如下所示:

[target]
path = rest

[deps]
github.com/astaxie/beego = tag:v0.9.0

【讨论】:

  • 如果你要投反对票,你应该提供一个理由。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 2014-07-24
相关资源
最近更新 更多