2011-11-26 18 views
7

Cuando se utiliza la 'joya siempre', me sale un error en el registro:Carriles 3 - Siempre que el error joya:/usr/bin/env: rubí: No existe el archivo o directorio

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

Funciona cuando Ejecuto el trabajo manualmente. He instalado todo con RVM.

He usado el comando which de encontrar donde mi instalación de Ruby es, y me sale:

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

y he comprobado mi variable $ PATH, donde vuelve:

[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 

Creo que esto debería estar configurado correctamente, pero probablemente estoy equivocado ya que no funciona. ¿Alguien puede señalarme en la dirección correcta?

Si le interesa, esto es lo que mi salida siempre es 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' 

Respuesta

1

estoy usando con éxito cada vez con RVM y bundler en la producción. Estas son las piezas relevantes de mi configuración Capistrano que pueden ayudarle a:

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

El ajuste :whenever_environment es porque estoy utilizando una configuración de despliegue de múltiples etapas. Puede ignorar eso o establecerlo en una cadena que coincida con su configuración si es necesario.

La mayoría de esta información se puede encontrar en whenever github page en los encabezados de las secciones "Integración de Capistrano" y "Integración de RVM" en el archivo README.

Espero que ayude.

6

usted es probablemente mucho más allá de este problema, pero para referencia futura:

tuve un problema similar única que estaba recibiendo

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

Resultó que la primera línea del archivo de script \ rieles estaba #!/usr/bin/env ruby1.9.1, que le dice al sistema que lo invoque con ruby1.9.1 como se explica en here. Pero debería haber sido #!/usr/bin/env ruby1.9.3 ya que esa era la versión que había instalado.

Espero que esto ayude a alguien en el futuro :)

+1

Hubiera sido mejor especificar la ruta del archivo (dentro de la carpeta de la aplicación) – skv

4

Mi problema era que el rubí se encuentra en// local/bin usr que no está en el camino de una fiesta sin cabeza. Así que acabo de hacer mi línea de trabajo en el rastrillo de schedule.rb:

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

¡Funciona como un encanto! – Ghazi

0

He resuelto el problema casi lo mismo que Duke. Excepto que descubro que la variable $ PATH no funciona para mí.

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

Si nada de esto funcionó para usted, trate de:

gem install rails 

Esto hizo el trabajo para mí, espero que ayude!

Cuestiones relacionadas