Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 卡皮斯特拉诺+;每当gem:无法部署时,";任何时候都不是捆绑包的一部分。将其添加到文件中&引用;_Ruby On Rails_Ruby_Capistrano_Whenever_Whenever Capistrano - Fatal编程技术网

Ruby on rails 卡皮斯特拉诺+;每当gem:无法部署时,";任何时候都不是捆绑包的一部分。将其添加到文件中&引用;

Ruby on rails 卡皮斯特拉诺+;每当gem:无法部署时,";任何时候都不是捆绑包的一部分。将其添加到文件中&引用;,ruby-on-rails,ruby,capistrano,whenever,whenever-capistrano,Ruby On Rails,Ruby,Capistrano,Whenever,Whenever Capistrano,我试图添加到我的Rails项目中,我将gem添加到gem文件中 gem "whenever", "~> 0.8.4" 而且它的安装没有任何问题。 然后我在生成的schedule.rb文件中添加了一个简单的任务: set :output, "/home/my_deploy_name/project_name/current/log/cron_log.log" every 2.minutes do command "/usr/bin/some_great_command"

我试图添加到我的Rails项目中,我将gem添加到gem文件中

gem "whenever", "~> 0.8.4"
而且它的安装没有任何问题。 然后我在生成的
schedule.rb
文件中添加了一个简单的任务:

 set :output, "/home/my_deploy_name/project_name/current/log/cron_log.log"

 every 2.minutes do
   command "/usr/bin/some_great_command"
   runner "MyModel.some_method"
   rake "some:great:rake:task"
   puts "It's working !!!"
 end
set :whenever_command, "bundle exec whenever"
require "whenever/capistrano"
namespace :deploy do
  desc "Update the crontab file"
  task :update_crontab, :roles => :db do
    run "cd #{latest_release} && whenever --update-crontab #{application}"
  end
end
然后我在
deploy.rb
文件中添加了以下内容:

 set :output, "/home/my_deploy_name/project_name/current/log/cron_log.log"

 every 2.minutes do
   command "/usr/bin/some_great_command"
   runner "MyModel.some_method"
   rake "some:great:rake:task"
   puts "It's working !!!"
 end
set :whenever_command, "bundle exec whenever"
require "whenever/capistrano"
namespace :deploy do
  desc "Update the crontab file"
  task :update_crontab, :roles => :db do
    run "cd #{latest_release} && whenever --update-crontab #{application}"
  end
end
我已尝试设置
最新发布版
当前路径
发布路径
,但在所有情况下,输出始终相同:

*** [err :: IP] sh: 1:
*** [err :: IP] whenever: not found
*** [err :: IP]
...
*** [err :: 54.221.241.111] /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:214:in `block in replace_gem'
*** [err :: IP] :
*** [err :: IP] whenever is not part of the bundle. Add it to Gemfile.
*** [err :: IP] (
*** [err :: IP] Gem::LoadError
*** [err :: IP] )
*** [err :: IP] from /home/my_deploy_name/project_name/shared/bundle/ruby/2.0.0/bin/whenever:22:in `<main>'
***[err::IP]sh:1:
***[错误::IP]无论何时:未找到
***[错误::IP]
...
***[err::54.221.241.111]/usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:214:in`block in replace_gem'
***[错误::IP]:
***[err::IP]无论何时都不是捆绑包的一部分。将其添加到文件中。
***[错误::IP](
***[err::IP]Gem::LoadError
***[错误::IP])
***[err::IP]from/home/my\u deploy\u name/project\u name/shared/bundle/ruby/2.0.0/bin/where:22:in`'
如何解决这个问题? (我正在部署到AmazonEC2-ubuntu)

谢谢

“每当”我遇到这个问题

只是开玩笑。事实上,这与capistrano有关,而不是任何时候。您正在deploy.rb中调用where命令,而不使用bundle上下文

run "cd #{latest_release} && whenever --update-crontab #{application}"
试试这个:

run "cd #{latest_release} && bundle exec whenever --update-crontab #{application}"