2011-11-26 68 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 

該做的工作對我來說,希望它幫助!