Ruby 管理gems之外的Rails依赖关系

Ruby 管理gems之外的Rails依赖关系,ruby,ruby-on-rails-3,ruby-on-rails-4,bundler,Ruby,Ruby On Rails 3,Ruby On Rails 4,Bundler,除了ruby游戏(bundler做得非常好)之外,我正在寻找管理rails项目外部依赖性的建议/资源/方法。例如,我想添加检查以查看 一些外部二进制文件(例如gdal、python等) 是否设置了某些环境变量(如aws访问密钥等) 今天是圣诞节吗 还有一些 我想到的一件事是,如果这些检查可以添加到bundler中,并且如果缺少或没有其他用户定义的项目依赖项,则显示错误消息,这将是一件好事。我不寻求版本管理或任何花哨的东西。只需添加一些自定义代码检查,以查看是否满足所有依赖项(当然除了gems)

除了ruby游戏(bundler做得非常好)之外,我正在寻找管理rails项目外部依赖性的建议/资源/方法。例如,我想添加检查以查看

  • 一些外部二进制文件(例如gdal、python等)
  • 是否设置了某些环境变量(如aws访问密钥等)
  • 今天是圣诞节吗 还有一些

    我想到的一件事是,如果这些检查可以添加到bundler中,并且如果缺少或没有其他用户定义的项目依赖项,则显示错误消息,这将是一件好事。我不寻求版本管理或任何花哨的东西。只需添加一些自定义代码检查,以查看是否满足所有依赖项(当然除了gems)

    还是有更好的方法让人们这么做?使用单元测试可以吗?如果初学者不知道如何运行单元测试呢

    我问这个问题的原因是,例如,作为一名经验丰富的rails开发人员,我希望与刚起步的人合作。我想使项目的安装和设置变得简单,如果有错误,请详细说明

    欢迎提供建议和链接到好的资源

    更新

    是否有一种“优雅”的方式来为bundler添加一些钩子?比如说让它从测试中运行一些单元测试或者别的什么

    此外,我不一定要通过此检查来安装这些外部依赖项。只要检查它们,如果检查失败,就会显示一条用户友好的消息,并提示如何安装它们


    简单的示例代码将非常棒。

    majioa关于使用rake任务的建议很有意义。您需要以某种方式运行shell命令,rake允许您更自然地将它们集成到Rails应用程序中

    我不确定如何连接到
    捆绑包中,但可以连接到Rails的rake任务(请参阅)
    db:create
    db:migrate
    是可以挂接的常见初始任务。请参阅作为学习rake的起点


    不过,设置机器似乎应该与应用程序本身分开考虑。你以前看过吗?

    不能用完整的答案来支持它,但我肯定会添加一个覆盖测试来检查环境。如果你与一个经验不足、不知道如何运行测试的人一起工作,那么第1课是“如何运行测试”。你为什么要避免bundler?@NeilSlater我已经有了涵盖该环境的测试用例。但我的想法是“捆绑安装”确实是您要做的第一件事。如果我们可以同时运行更多的依赖项检查,那就太棒了。@majioa从未说过我想避免bundler,只是想检查GemOK之外的更多依赖项,只需将gem控制依赖项放到bunlder,并添加一个rake任务,例如
    安装
    ,它将控制您想要的扩展依赖项,包括
    bundler安装
    功能。谢谢你的回答Jim,是的,我已经查看了Chef,只是我觉得用它来检查两个操作系统的依赖关系太过分了。现在,通过答案中的链接创建rake任务更有意义。只需要弄清楚如何在bundler之后执行它们。因为我仍然觉得如果不满足依赖关系,这是捕获这些错误的最简单方法。