【问题标题】:Rails requires RubyGems >= 0.9.4. Please install RubyGemsRails 需要 RubyGems >= 0.9.4。请安装 RubyGems
【发布时间】:2010-10-04 10:25:08
【问题描述】:

遇到与this post 相同的问题,但不幸的是我认为解决方案不一样。

我收到此错误消息:

Rails requires RubyGems >= 0.9.4. Please install RubyGems

当我在 Cron 中运行脚本/运行程序作业时,但当我在同一服务器上的终端中运行它时,它工作得非常好。

rails 服务器也运行良好。我只有在 cron 中运行脚本/运行程序时遇到问题。好像是想连个终端...

【问题讨论】:

    标签: ruby-on-rails ruby deployment rubygems cron


    【解决方案1】:

    从您的 cron 作业和终端尝试 which rubywhich gem。您是否在访问不同的二进制文件?你没有提到哪个操作系统和哪个shell,但是在无头运行时你可能有不同的$PATH

    【讨论】:

    • 谢谢,就是这样。 which gem 从 cron 运行时没有返回任何内容,因此我将 PATH 环境变量设置为与我的终端会话中设置的相同,现在它工作正常。谢谢!
    【解决方案2】:

    选择的答案是完全正确的,但我建议不要使用脚本/运行器。加载 Rails 应用程序的整个堆栈所需的资源对于定期运行的东西来说是相当密集的。

    根据我过去的经验,任何 cron 作业通常只需要处理数据(而不是生成静态文件等)。在这种情况下,您可以非常简单地加载您的模型,并且由于您已经以正确的方式(胖模型)编写了模型,因此您可以使用一些模型方法轻松地进行数据处理。

    当然,以上所有内容都完全取决于您的任务,因此请谨慎对待:)

    我想这是对一个可能不存在的问题的一种回答,在这里没有被问到,但我只是想我会把我的两分钱扔进去;)

    【讨论】:

      【解决方案3】:

      您不会碰巧在 OSX 上工作吗?您应该在 macports 上安装更新的 ruby​​ rails 和 gems。谷歌的说明...

      【讨论】:

        【解决方案4】:

        正如之前的帖子所指出的,您的 Cron 正在使用不同的 gem 命令源 - 也可以尝试 which gemgem -v。您可能在 .bash_profile 中设置了一个库(或类似的 shell 配置,或者可能通过其他方式,设置适当的 Ruby/Rails 环境(即 Locomotive 或其他一体式环境)。

        要更新您的 gem 设置:

        gem update --system

        更多信息在这里 - http://www.rubygems.org/read/book/1

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多