2011-11-26 67 views
7

当使用“每当宝石”,我在日志中得到一个错误:的Rails 3 - 每当宝石错误:在/ usr/bin中/ ENV:红宝石:没有这样的文件或目录

/usr/bin/env: ruby: No such file or directory 

它的工作原理时,我手动运行作业。我已经用RVM安装了所有的东西。

我使用which命令来查找在我的Ruby安装是,我也得到:

[email protected]:/opt/personal$ which ruby 
/home/kevin/.rvm/rubies/ruby-1.9.2-p290/bin/ruby 

,我已经检查了我的$ PATH变量,它返回:

[email protected]:/opt/personal$ echo $PATH 
/home/kevin/.rvm/gems/ruby-1.9.2-p290/bin:/home/kevin/.rvm/gems/[email protected]/bin:/home/kevin/.rvm/rubies/ruby-1.9.2-p290/bin:/home/kevin/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

我认为这应该设置正确,但我可能是错误的,因为它不起作用。任何人都可以将我指向正确的方向吗?

如果你有兴趣,这是我的crontab时输出是什么:

# Begin Whenever generated tasks for: rss 
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /bin/bash -l -c 'cd /opt/personal && script/rails runner -e development '\''FeedEntry.update_from_feed("http://lovely/blog/feed/")'\'' >> /opt/personal/log/feedzirra.log 2>&1' 

回答

1

我成功地使用,只要在生产RVM和打捆。这里是我的Capistrano的设置的相关作品,可以帮助你:

# rvm and bundler integration 
require 'rvm/capistrano' 
require 'bundler/capistrano' 

# RVM environment 
set :rvm_ruby_string, "[email protected]" 

# crontab 
set :whenever_roles, :cron 
set :whenever_command, "bundle exec whenever" 
set :whenever_environment, defer { stage } 
require 'whenever/capistrano' 

:whenever_environment设置是因为我使用的是多级部署安装。如果需要,您可以忽略该设置或将其设置为与您的设置相匹配的字符串。

大部分信息可以在自述文件中的“Capistrano集成”和“RVM集成”部分标题下的whenever github page找到。

我希望有帮助。

6

你可能是早就过这个问题,但以供将来参考:

我有一个类似的问题,只有我是越来越

/usr/bin/env: ruby: No such file or directory 

原来的脚本文件的第一行\轨道被#!/usr/bin/env ruby1.9.1,它告诉系统使用ruby1.9.1调用它,如here所述。但它应该是#!/usr/bin/env ruby1.9.3,因为那是我安装的版本。

希望这可以帮助别人的未来:)

+1

指定文件的路径(应用程序文件夹内)会更好 – skv

4

我的问题是,红宝石是在/ usr/local/bin目录是不是一个无头的bash的路径。所以我只是在schedule.rb中创建了我的rake任务行:

job_type :rake, "cd :path && PATH=/usr/local/bin:$PATH RAILS_ENV=:environment bundle exec rake :task :output" 
+0

像魅力一样工作! – Ghazi

0

我解决了与Duke相同的问题。除了我发现$ PATH变量不适合我。

sys_path = '/home/[user]/.rbenv/versions/[ruby_version]/bin' 

job_type :runner, "cd :path && PATH=#{sys_path} bin/rails runner -e :environment ':task' :output" 
job_type :rake, "cd :path && PATH=#{sys_path} :environment_variable=:environment bin/bundle exec rake :task --silent :output" 
2

如果没有这些为你工作,尝试:

gem install rails 

该做的工作对我来说,希望它帮助!