ruby-on-rails - para - ruby installer
RVM instalado por Ruby no funciona? (9)
Instalé RVM usando la única instrucción mencionada en el sitio web de RVM (usando git).
Luego instalé Ruby versión 1.9.2 y 1.8.7 usando:
rvm install 1.9.2
rvm install 1.8.7
Sin embargo, no puedo encontrar el binario de Ruby. Cuando intento ejecutar el comando, aparece el siguiente error:
[root@server1 support]# rvm use 1.9.2
Using /usr/local/rvm/gems/ruby-1.9.2-p136
[root@server1 support]# ruby
-bash: ruby: command not found
Aquí está el resultado de la rvm info
:
[root@server1 support]# rvm info
system:
system:
uname: "Linux server1.myserver.com 2.6.18-194.26.1.el5.028stab070.14 #1 SMP Thu Nov 18 16:34:01 MSK 2010 x86_64 x86_64 x86_64 GNU/Linux"
bash: "/bin/bash => GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)"
zsh: " => not installed"
rvm:
version: "rvm 1.2.6 by Wayne E. Seguin ([email protected]) [http://rvm.beginrescueend.com/]"
homes:
gem: "not set"
ruby: "not set"
binaries:
ruby: ""
irb: ""
gem: ""
rake: ""
environment:
PATH: "/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/rvm/bin"
GEM_HOME: ""
GEM_PATH: ""
MY_RUBY_HOME: ""
IRBRC: ""
RUBYOPT: ""
gemset: ""
[root@server1 support]#
¿Estás asegurándote de obtener / usr / local / lib / rvm? echo ''source /usr/local/lib/rvm'' >> ~/.bashrc
y relog a través de SSH / iniciar una nueva instancia de Bash.
Para aclarar, dado que existe cierta confusión: hay dos formas de instalar RVM: una instalación "por usuario" y una instalación de "todo el sistema".
Para la mayoría del uso diario, desea utilizar una instalación "por usuario", que instala RVM en ~/.rvm
. Las instalaciones en todo el sistema son buenas para los servidores, donde se debe usar un conjunto de Rubies. La ubicación predeterminada para RVM en este caso es /usr/local/rvm
.
Según su pregunta, parece que ha instalado RVM como una instalación para todo el sistema.
Para usar RVM, debe inicializarse ejecutando un script cada vez que inicie sesión. Para hacerlo fácilmente, incluya el archivo en su archivo ~/.bashrc
(o ~/.bash_profile
si está en OS X), por lo que que se ejecuta automáticamente cada vez que inicie sesión. Para una instalación por usuario, agregue el siguiente texto al archivo:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
para instalaciones de todo el sistema, use este texto en su lugar:
[[ -s "/usr/local/lib/rvm" ]] && . "/usr/local/lib/rvm"
Si realmente tiene una instalación en todo el sistema, también deberá asegurarse de ser miembro del grupo rvm; escriba lo siguiente para hacerlo:
sudo adduser `whoami` rvm
Una vez que haya realizado los cambios necesarios, rvm use 1.9.2
la sesión y vuelva a iniciar sesión. Una vez que lo haya hecho, rvm use 1.9.2
debería establecer un conjunto de variables de entorno, que puede ver escribiendo rvm info
. Si todo está bien, ruby
debería ejecutarse correctamente.
Aquí es cómo arreglar rubíes no detectados dentro de RVM.
Primero, hice un control de cordura para asegurarme de que todo se ve muy bien, luego corrí
rvm use ruby --default
que hizo el trabajo. Todo se reduce a este comando:
-SVE1411EGXB:~/code$ cd app1/
-SVE1411EGXB:~/code/app1$ rails s
The program ''rails'' can be found in the following packages:
* ruby-railties-3.2
* ruby-railties-4.0
Try: sudo apt-get install <selected package>
-SVE1411EGXB:~/code/app1$ rails s
The program ''rails'' can be found in the following packages:
* ruby-railties-3.2
* ruby-railties-4.0
Try: sudo apt-get install <selected package>
-SVE1411EGXB:~/code/app1$ which ruby
-SVE1411EGXB:~/code/app1$ which gem
-SVE1411EGXB:~/code/app1$ rvm list
rvm rubies
=* ruby-2.1.2 [ x86_64 ]
# => - current
# =* - current && default
# * - default
-SVE1411EGXB:~/code/app1$ /curl -sSL https://get.rvm.io | bash -s stable
Downloading https://github.com/wayneeseguin/rvm/archive/stable.tar.gz
Upgrading the RVM installation in /home /.rvm/
RVM PATH line found in /home /.profile /home /.bashrc /home /.zshrc.
RVM sourcing line found in /home /.bashrc /home /.bash_profile /home /.zlogin.
Upgrade of RVM in /home /.rvm/ is complete.
# nullsoulexception,
#
# Thank you for using RVM!
# We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne, Michal & team.
In case of problems: http://rvm.io/help and https://twitter.com/rvm_io
Upgrade Notes:
* No new notes to display.
-SVE1411EGXB:~/code/app1$ rails s
The program ''rails'' can be found in the following packages:
* ruby-railties-3.2
* ruby-railties-4.0
Try: sudo apt-get install <selected package>
-SVE1411EGXB:~/code/app1$ source ~/.rvm/scripts/rvm
-SVE1411EGXB:~/code/app1$ rvm requirements
Checking requirements for ubuntu.
Requirements installation successful.
-SVE1411EGXB:~/code/app1$ rvm get stable
Downloading https://get.rvm.io
Downloading https://github.com/wayneeseguin/rvm/archive/stable.tar.gz
Upgrading the RVM installation in /home /.rvm/
RVM PATH line found in /home /.profile /home /.bashrc /home /.zshrc.
RVM sourcing line found in /home /.bashrc /home /.bash_profile /home /.zlogin.
Upgrade of RVM in /home /.rvm/ is complete.
# nullsoulexception,
#
# Thank you for using RVM!
# We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne, Michal & team.
In case of problems: http://rvm.io/help and https://twitter.com/rvm_io
Upgrade Notes:
* No new notes to display.
RVM reloaded!
-SVE1411EGXB:~/code/app1$ rvm reload
RVM reloaded!
-SVE1411EGXB:~/code/app1$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-head] # security released on head
[ruby-]1.9.3[-p547]
[ruby-]2.0.0-p451
[ruby-]2.0.0[-p481]
[ruby-]2.1.1
[ruby-]2.1[.2]
[ruby-]2.1-head
ruby-head
# GoRuby
goruby
# Topaz
topaz
# TheCodeShop - MRI experimental patches
tcs
# jamesgolick - All around gangster
jamesgolick
# Minimalistic ruby implementation - ISO 30170:2012
mruby[-head]
# JRuby
jruby-1.6.8
jruby[-1.7.12]
jruby-head
# Rubinius
rbx-2.0.0
rbx-2.1.1
rbx[-2.2.7]
rbx-head
# Ruby Enterprise Edition
ree-1.8.6
ree[-1.8.7][-2012.02]
# Kiji
kiji
# MagLev
maglev[-head]
maglev-1.0.0
# Mac OS X Snow Leopard Or Newer
macruby-0.10
macruby-0.11
macruby[-0.12]
macruby-nightly
macruby-head
# Opal
opal
# IronRuby
ironruby[-1.1.3]
ironruby-head
-SVE1411EGXB:~/code/app1$ ruby -v
The program ''ruby'' can be found in the following packages:
* ruby
* ruby1.8
Try: sudo apt-get install <selected package>
-SVE1411EGXB:~/code/app1$ rvm use ruby --default
Using /home /.rvm/gems/ruby-2.1.2
-SVE1411EGXB:~/code/app1$ ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
-SVE1411EGXB:~/code/app1$ rails s
=> Booting WEBrick
=> Rails 4.1.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
Configuré mi shell como un shell de inicio de sesión (abra terminal> Editar> Preferencias de perfil> pestaña Comando> "Ejecutar comando como un shell de inicio de sesión"), aunque no estoy 100% seguro de que sea necesario.
Una vez que haya terminado de instalar RVM + Ruby, debe especificar qué ruby va a utilizar. Me gusta usar
rvm use --latest --default
Instalé Ruby on Rails en una máquina virtual Ubuntu 11.10, usando " CÓMO INSTALAR RUBY ON RAILS EN UBUNTU 11.10 ".
Después de instalarlo, me encontré con el mismo problema. Lo único que parece que falta en el tutorial, en mi opinión, es el siguiente comando:
rvm --default use 1.9.2
Aunque Ruby está instalado correctamente, el RVM parece redefinir en cada sesión el uso de Ruby. El problema era que el valor por defecto de Ruby apuntaba al "ruby del sistema" y, en mi caso, este apuntaba a ninguna parte y hacía que la llamada rvm info
devolviera un resultado similar al de la publicación inicial.
Para resolver este problema, uno de los comandos de Follwings debe ser utilizado:
rvm --default use 1.9.x
o (válido solo para la sesión actual)
rvm use 1.9.x
Antes de que pudiera iniciar el servidor, también encontré " ExecJS y no pude encontrar un tiempo de ejecución de JavaScript ". Como se propuso en varias respuestas, lo resolví agregando las siguientes líneas al Gemfile.
gem ''execjs''
gem ''therubyracer''
y ejecutando bundle install
luego.
Me encontré con el mismo problema. Acabo de ejecutar el comando:
/bin/bash --login
Noté que la línea de source
estaba correctamente en .bash_profile pero seguí recibiendo el comando de ruby no encontrado. Entonces, cuando revisé la rvm list
, descubrí que no se había seleccionado ruby:
rvm list
rvm rubies
ruby-2.4.0 [ x86_64 ]
# Default ruby not set. Try ''rvm alias create default <ruby>''.
# => - current
# =* - current && default
# * - default
luego hice la selección a través de rvm use 2.4.0
y revisé de nuevo
rvm list
rvm rubies
=> ruby-2.4.0 [ x86_64 ]
# Default ruby not set. Try ''rvm alias create default <ruby>''.
# => - current
# =* - current && default
# * - default
Mire la flecha para cerrar el ruby instalado y los subtítulos comentados. Después de ese ruby -v
finalmente me respondió
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
Espero esta ayuda. Aclamaciones.
editar: puede usar rvm --default use 2.4.0
para configurarlo como versión predeterminada de ruby
RVM requiere una pequeña adición a su ~/.bashrc
o ~/.bash_profile
para inicializarlo cuando inicie sesión. Se especifica en los documentos de instalación en la sección de instalación posterior . ¿Hiciste eso?
Según su salida de rvm info
, parece que no ha completado su instalación. Todas las entradas en la salida deben tener valores correspondientes. Entonces, sospecho que no has agregado:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.
a su ~/.bashrc
o ~/.bash_profile
y luego comenzó una nueva sesión.
Si está realizando una instalación de "múltiples usuarios", deberá hacer mucho más. ¿Ha modificado /etc/profile
, o si está utilizando Bash como su shell, ha modificado /etc/bash.bashrc
para incluir:
# Load RVM if it is installed, # first try to load user install # then try to load root install, if user install is not there. if [ -s "$HOME/.rvm/scripts/rvm" ] ; then . "$HOME/.rvm/scripts/rvm" elif [ -s "/usr/local/rvm/scripts/rvm" ] ; then . "/usr/local/rvm/scripts/rvm" fi
y comenzó un nuevo caparazón?
Personalmente, no me gusta la instalación multiusuario tanto como la instalación para un solo usuario, y no lo recomiendo, pero su kilometraje puede variar.
Como un FYI: en una discusión con los mantenedores de RVM en IRC el año pasado, me dijeron que no recomiendan la instalación de todo el sistema, y en su lugar recomiendan la instalación local de "un solo usuario", incluso para servidores.
Ruby no está en tu camino. En términos simples, RVM maneja el cambio de Ruby en su camino. Mira el resultado de la herramienta de línea de comandos
printenv
Deberías ver algo similar a:
PATH=/Users/myuser/.rvm/gems/jruby-1.5.6/bin
Vea la respuesta del Hombre de Hojalata, debería conseguirlo si necesita ir.
Tuve un problema similar (usando Ubuntu 13.10) para resolverlo
$ source .rvm/scripts/rvm
y para largo plazo
$ echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc
$ ruby -v
The program ''ruby'' can be found in the following packages:
* ruby1.8
* ruby1.9.1
Try: sudo apt-get install <selected package>
$ source .rvm/scripts/rvm
$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]