2011-11-26 22 views
7

Khi sử dụng 'viên ngọc bất cứ khi nào', tôi nhận được một lỗi trong nhật ký:Rails 3 - Bất cứ khi nào lỗi đá quý:/usr/bin/env: ruby: Không có tập tin hoặc thư mục

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

Nó hoạt động khi Tôi chạy công việc bằng tay. Tôi đã cài đặt mọi thứ với RVM.

Tôi đã sử dụng lệnh which để tìm nơi cài đặt của Ruby của tôi là, và tôi nhận được:

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

và tôi đã kiểm tra biến $ PATH của tôi, nơi nó sẽ trả về:

[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 

Tôi tin rằng điều này nên được thiết lập đúng, nhưng tôi có thể sai vì nó không hoạt động. ai đó có thể chỉ cho tôi phương hướng đúng không?

Nếu bạn quan tâm, đây là những gì đầu ra bất cứ khi nào crontab của tôi là:

# 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' 

Trả lời

1

Tôi đang sử dụng thành công bất cứ khi nào với RVM và bundler trong sản xuất. Dưới đây là các mảnh có liên quan của thiết lập capistrano tôi có thể giúp bạn:

# 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' 

Thiết lập :whenever_environment là vì tôi đang sử dụng một thiết lập triển khai nhiều giai đoạn. Bạn có thể bỏ qua điều đó hoặc đặt nó thành chuỗi phù hợp với thiết lập của bạn nếu cần.

Hầu hết thông tin này có thể được tìm thấy tại whenever github page dưới tiêu đề phần "Tích hợp Capistrano" và "RVM Integration" trong README.

Tôi hy vọng điều đó sẽ hữu ích.

6

Bạn đang có lẽ dài qua vấn đề này nhưng để tham khảo trong tương lai:

Tôi đã có một vấn đề tương tự duy nhất tôi đã nhận được

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

Hóa ra dòng đầu tiên của kịch bản tập tin \ ray được #!/usr/bin/env ruby1.9.1, yêu cầu hệ thống gọi nó bằng ruby1.9.1 như được giải thích here. Nhưng nó phải là #!/usr/bin/env ruby1.9.3 vì đó là phiên bản tôi đã cài đặt.

Hope this helps ai đó trong tương lai :)

+1

Sẽ tốt hơn nếu bạn chỉ định đường dẫn của tệp (bên trong thư mục ứng dụng) – skv

4

Vấn đề của tôi là ruby ​​là trong/usr/local/bin mà không phải là trong đường dẫn của một bash không đầu. Vì vậy, tôi vừa thực hiện dòng nhiệm vụ rake của tôi theo lịch trình.rb:

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

Hoạt động như một sự quyến rũ! – Ghazi

0

Tôi giải quyết vấn đề về giống như Duke. Ngoại trừ tôi thấy rằng biến $ PATH không hoạt động đối với tôi.

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

Nếu không ai trong số những làm việc cho bạn, hãy thử:

gem install rails 

này đã làm công việc cho tôi, hy vọng nó sẽ giúp!

Các vấn đề liên quan