mi programa rubí:
#echoHW.rb
while 1 < 2
sleep(10)
puts "hey!"
end
el script bash(?) que lo llama:
#echoHW.sh
ruby -v
ruby echoHW.rb "$@" &
Instalé rvm, probando los modos "usuario único" y "multiusuario"; Tengo mi valor predeterminado configurado en 1.9.3p125, pero no importa lo que haga, cuando ejecuto esto, ejecuta 1.8.7, que evidentemente es la versión "del sistema" de Ruby.
Supongo que esto es una solución fácil: quiero que el script llame al Ruby que configuré como predeterminado con RVM, pero estoy perplejo.
tia
EDITAR: la salida de la información de rvm:
qe2user@qe2server:~/Ruby/query_engine$ información de rvm
rubí-1.9.3-p125:
sistema: uname: "Linux qe2server 2.6.32-33-server #70-Ubuntu SMP jueves 7 de julio 22:28:30 UTC 2011 x86_64 GNU/Linux" bash: "/bin/bash => GNU bash, versión 4.1.5 (1)-lanzamiento (x86_64-pc-linux-gnu)" zsh: " => no instalado"
rvm: versión: "rvm 1.12.3 (estable) por Wayne E. Seguin, Michal Papis [htps://rvm.io/]" actualizado: "Hace 13 horas 39 minutos 42 segundos"
ruby: intérprete: "ruby" versión: "1.9.3p125" fecha: "2012-02-16" plataforma: "x86_64-linux" nivel de parche: "2012-02-16 revisión 34643" versión_completa: "ruby 1.9.3p125 (2012) -02-16 revisión 34643) [x86_64-linux]"
casas: gema: "/usr/local/rvm/gems/ruby-1.9.3-p125" ruby: "/usr/local/rvm/rubies/ruby-1.9.3-p125"
binarios: ruby: "/usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby" irb: "/usr/local/rvm/rubies/ruby-1.9.3-p125/bin/irb" gem: "/usr/local/rvm/rubies/ruby-1.9.3-p125/bin/gem" rastrillo: "/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin/rake"
entorno: RUTA: "/usr/local/rvm/gems/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/ rv /rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin: /bin:/usr/games" GEM_HOME: "/usr/local/rvm/gems/ruby-1.9.3-p125" GEM_PATH: "/usr/local/rvm/gems/ruby-1.9.3-p125:/usr /local/rvm/gems/ruby-1.9.3-p125@global" MY_RUBY_HOME: "/usr/local/rvm/rubies/ruby-1.9.3-p125" IRBRC: "/usr/local/rvm/rubies/ruby -1.9.3-p125/.irbrc" RUBYOPT: "" conjunto de gemas: ""
Respuesta1
No parece que haya configurado correctamente su intérprete Ruby predeterminado en RVM. Por ejemplo, con un RVM correctamente instalado:
# Assumes that 1.9.3-p125 is already fully-installed under RVM.
rvm --default use ruby-1.9.3-p125
Esto garantizará que se utilice el Ruby especificado, en lugar del predeterminado del sistema. Puede cambiar el Ruby actual en cualquier momento desde rvm use
el símbolo del shell.
Sin embargo, si desea utilizar algo distinto al valor predeterminado dentro de un script, puede envolver su script con otro script de shell que establezca el Ruby actual usando RVM. Si esa no es una opción, también puedes llamar a un intérprete específico directamente a tu línea shebang:
#!/home/user/.rvm/rubies/ruby-1.9.3-p125/bin/ruby
pero esto también puede requerir que modifiques algunas variables de entorno, como MY_RUBY_HOME y RUBY_VERSION (consulta rvm info
para obtener una lista completa) para que varias bibliotecas y gemas funcionen.
Modificar el entorno puede ser necesario o no para usted (mucho depende de lo que esté haciendo su script Ruby), pero siesSi es necesario, puedes jugar con varias opciones en la línea de comando hasta que todo funcione en conjunto. Por ejemplo:
$ MY_RUBY_HOME=~/.rvm/rubies/ruby-1.9.3-p125 \
~/.rvm/rubies/ruby-1.9.3-p125/bin/ruby -e 'puts("hello")'
hello
Además, lea sobre el proyecto..rvmrcarchivos. Esta es otra vía para garantizar que su entorno de trabajo utilice Ruby y el conjunto de gemas que necesita para su aplicación particular.