Rails 3 - Всякий раз, когда ошибка gem: / usr / bin / env: ruby: Нет такого файла или каталога - PullRequest
7 голосов
/ 27 ноября 2011

При использовании «всякий раз драгоценный камень» я получаю сообщение об ошибке в журнале:

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

Это работает, когда я запускаю работу вручную. Я установил все с RVM.

Я использовал команду which, чтобы узнать, где находится моя установка Ruby, и я получаю:

kevin@lovely:/opt/personal$ which ruby
/home/kevin/.rvm/rubies/ruby-1.9.2-p290/bin/ruby

и я проверил свою переменную $ PATH, где она возвращает:

kevin@lovely:/opt/personal$ echo $PATH
/home/kevin/.rvm/gems/ruby-1.9.2-p290/bin:/home/kevin/.rvm/gems/ruby-1.9.2-p290@global/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'

Ответы [ 5 ]

6 голосов
/ 13 августа 2012

Вы, вероятно, давно прошли эту проблему, но для дальнейшего использования:

У меня была похожая проблема, только я получал

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

Оказалось, что первой строкой файла script \ rails была #!/usr/bin/env ruby1.9.1, которая сообщает системе, что она должна вызываться с ruby1.9.1, как объяснено здесь . Но это должно было быть #!/usr/bin/env ruby1.9.3, так как это была версия, которую я установил.

Надеюсь, это поможет кому-то в будущем:)

4 голосов
/ 12 сентября 2012

Моя проблема заключалась в том, что ruby ​​находится в / usr / local / bin, а не в пути без заголовка. Так что я только что сделал мою строку с рейком в schedule.rb:

job_type :rake, "cd :path && PATH=/usr/local/bin:$PATH RAILS_ENV=:environment bundle exec rake :task :output"
1 голос
/ 15 октября 2017

Если ни один из них не помог вам, попробуйте:

gem install rails

Это сработало для меня, надеюсь, это поможет!

1 голос
/ 04 декабря 2011

Я успешно использую всякий раз, когда RVM и связка в производстве.Вот соответствующие части моей настройки capistrano, которые могут вам помочь:

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

# RVM environment
set :rvm_ruby_string, "ruby-1.9.2@mygemset"

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

Параметр :whenever_environment вызван тем, что я использую настройку многоступенчатого развертывания.Вы можете игнорировать это или установить строку, соответствующую вашей настройке, если это необходимо.

Большая часть этой информации может быть найдена на всякий раз, когда страница github в разделах "Интеграция Capistrano" и "RVM".Заголовки разделов "Интеграция" в README.

Надеюсь, это поможет.

0 голосов
/ 05 октября 2016

Я решил проблему примерно так же, как герцог. За исключением того, что я понял, что переменная $ 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"
...