Ruby on rails 在生产环境中运行rake任务时出错

Ruby on rails 在生产环境中运行rake任务时出错,ruby-on-rails,ruby-on-rails-4,rake,rake-task,whenever,Ruby On Rails,Ruby On Rails 4,Rake,Rake Task,Whenever,当我跑的时候 $bundle env 结果如下: Bundler 1.5.2 Ruby 2.1.0 (2013-12-25 patchlevel 0) [x86_64-linux] Rubygems 2.2.1 rvm 1.25.15 (stable) GEM_HOME /usr/local/rvm/gems/ruby-2.1.0 GEM_PATH /usr/local/rvm/gems/ruby-2.1.0:/usr/local/rvm/gems/ruby-2.1.0@global ruby

当我跑的时候

$bundle env
结果如下:

Bundler 1.5.2
Ruby 2.1.0 (2013-12-25 patchlevel 0) [x86_64-linux]
Rubygems 2.2.1
rvm 1.25.15 (stable)
GEM_HOME /usr/local/rvm/gems/ruby-2.1.0
GEM_PATH /usr/local/rvm/gems/ruby-2.1.0:/usr/local/rvm/gems/ruby-2.1.0@global
rubygems-bundler (1.4.2)
但在运行时,在控制台中运行
tail-f log/cron_log.log
我遇到了以下问题

/usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/gems/2.1.0/gems/bundler-1.5.0/lib/bundler/spec_set.rb:92:in `block in materialize'/usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/gems/2.1.0/gems/bundler-1.5.0/lib/bundler/spec_set.rb:92:in `block in materialize'/usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/gems/2.1.0/gems/bundler-1.5.0/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.1.1 in any of the sources (Bundler::GemNotFound)
我怎样才能解决这个问题

编辑

$crontab -l
35 0***/usr/bin/apt获取更新

35 1***/usr/bin/apt get-y升级

# Begin Whenever generated tasks for: trrm
PATH=/usr/local/rvm/gems/ruby-2.1.0/bin:/usr/local/rvm/gems/ruby-2.1.0@global/bin:/usr/local/rvm/rubies/ruby-2.1.0/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

* * * * * /bin/bash -i -c 'cd /var/www/trrm && RAILS_ENV=production bundle exec rake ad_has_expired_task --silent >> log/cron_log.log 2>&1'

0,15,30,45 * * * * /bin/bash -i -c 'cd /var/www/trrm && RAILS_ENV=production bundle exec rake ad_going_to_expire_task --silent >> log/cron_log.log 2>&1'

# End Whenever generated tasks for: trrm

哪个命令给出了错误?运行tail-f log/cron_log.log
tail
只需打开日志文件!我认为您可以通过cron启动rake任务,而这个任务恰恰会引发异常。显示您在cron任务中有什么(
crontab-l
在控制台中)@gotva:请查看crontab的编辑部分-lI思考您是否可以在控制台
cd/var/www/trrm&&RAILS\u ENV=production bundle exec rake ad\u已过期\u task
(或简单变体
rake-T
)中运行,而不是真正的任务)然后是bash脚本中的问题,确切地说是bash-i-c中的问题。PS我不是bash的亲密朋友