现在我正在使用Berkshelf从我当地的存储库或我正在使用的社区食谱中提取食谱(例如java / rvm等)。
我正在将我的项目从使用分叉社区烹饪书转换为直接从github.com获取berkshelf。问题是社区烹饪书没有版本控制。我不能告诉berkshelf我正在使用旧版本的社区食谱,因为它根本不存在于github上。版本或与此相关的任何内容都没有分支。我可以通过查看提交日志(对于所需的版本)简单地分配回购,但这是额外的开销(维护分支)我正试图摆脱。
什么是最佳解决方案?对于我来说,berkshelf无法从社区食谱的某个地方获取旧版本,这听起来不对。
答案 0 :(得分:1)
是的,这就是为什么你不应该使用SCM位置的食谱。相反,请将api.berkshelf.com用于社区食谱。
答案 1 :(得分:1)
社区食谱已经过版本化。
Berkshelf文件顶部的site directive将从网址“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的例子,那就太棒了。然后,当我们将它们用作依赖项时,我们知道哪个提交代表元数据文件中声明的实际版本....