【问题标题】:Rails cron Whenever gem error, bundle: command not foundRails cron 每当 gem 出错时,bundle: command not found
【发布时间】:2014-12-18 00:27:20
【问题描述】:

我已阅读此帖子 Whenever errors 并尝试实施这些建议,但无济于事。我仍然收到“/bin/bash: bundle: command not found”错误。 在 Amazon EC2 上。

哪个红宝石

/usr/local/bin/ruby

哪个捆绑器

/usr/local/bin/bundler

schedule.rb

env :PATH, ENV['PATH']
require File.expand_path('../application', __FILE__)
set :output, "log/cron_log.log"

every 1.minutes do
  rake "calculate:calculate"
end

crontab -e

          • /bin/bash -l -c 'cd /srv/www/myapp/releases/20141022032959 && RAILS_ENV=development bundle exec rake calculate:calculate --silent >> log/cron_log.log 2>&1'

tail -f log/cron_log.log

/bin/bash: bundle: command not found

当我从 crontab 中复制命令并直接运行时,一切正常(cd /srv/www/myapp/releases/20141022032959 && RAILS_ENV=development bundle exec rake calculate:calculate --silent >> log/cron_log.日志 2>&1)。是 /bin/bash 的前缀搞砸了。

我如何让 schedule.rb / 每当 gem 识别正确的路径。

【问题讨论】:

    标签: ruby-on-rails amazon-ec2 cron whenever


    【解决方案1】:

    忘记 cron 文件中的 PATH 设置。设置 PATH 不起作用。

    在 config/schedule.rb 中明确设置捆绑路径

    set :bundle_command, "/usr/local/bin/bundle exec"
    

    编辑:添加了 exec 以便任务可以运行

    【讨论】:

    • 刚刚测试过了。那不应该是"/usr/local/bin/bundle exec"吗?
    • 是的,正确的应该是"/usr/local/bin/bundle exec"
    • 这个问题是schedule.rb一般是在git下版本化的。据我们所知,bundle 的路径可能会因机器而异。那你怎么处理呢?
    • @El-Key 您是否根据机器获得了路径更改的解决方案。它真的很有趣,因为一台机器可能有不同的路径,而另一台机器可能不同。有什么正确的方法吗?
    • @VoidZero 我在文件开头添加了这个env :PATH, ENV['PATH']schedule.rb
    【解决方案2】:

    如果上述解决方案均无效,则无需任何其他设置即可为我完成此操作

    rvm cron setup
    

    这将包括 gems 的所有正确路径,因此您可以在您的机器上执行此操作,一切顺利。

    【讨论】:

      【解决方案3】:

      如果使用rbenv,路径是“/home/YOUR_USER/.rbenv/shims/bundle”,所以你应该写在schedule.rb的顶部..:

      set :bundle_command, "/home/YOUR_USER/.rbenv/shims/bundle exec"
      

      【讨论】:

        猜你喜欢
        • 2014-03-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-06
        • 2011-09-26
        • 1970-01-01
        • 2014-06-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多