0

现在我正在使用 Berkshelf 从我的本地存储库或我正在使用的社区食谱(例如 java / rvm 等)中提取食谱。

我正在将我的项目从使用分叉的社区食谱转变为直接从 github.com 拉取 berkshelf。问题是社区食谱上没有版本控制。我不能告诉 berkshelf 我正在使用旧版本的社区食谱,因为它根本不存在于 github 上。版本或与之相关的任何内容都没有分支。我可以通过查看提交日志(对于所需版本)来简单地分叉存储库,但这是我试图摆脱的额外开销(维护分叉)。

什么是最优化的解决方案?对我来说,berkshelf 无法从某个地方为社区食谱获取旧版本,这听起来是错误的。

4

2 回答 2

1

对,这就是为什么你不应该使用来自 SCM 位置的食谱。相反,将 api.berkshelf.com 用于社区食谱。

于 2014-03-07T16:09:18.083 回答
1

社区食谱是版本化的。

Berkshelf 文件顶部的站点指令将从 URL“ http://cookbooks.opscode.com/api/v1/cookbooks ”下载社区食谱:

site :opscode

cookbook "xxxx", "1.0"
cookbook "yyyy", "2.0"

正如 Seth 指出的那样,这比从 github 中检索要好,因为它可以确保您获得已发布的版本。另一个好处是传递依赖将被自动检索。

社区食谱使用标签进行发布管理。如果你真的,真的,真的想继续直接从 github 检索它们,你可以执行以下操作:

cookbook "artifact", github: "opscode-cookbooks/mysql", tag: "v4.0.14"

如果 github 中的所有食谱都遵循 opscode 的示例,那就太好了。然后,当我们将它们用作依赖项时,我们会知道哪个提交代表元数据文件中所述的实际版本......

于 2014-03-07T21:43:57.540 回答