web-dev-qa-db-fra.com

RVM installé par Ruby ne fonctionne pas?

J'ai installé RVM en utilisant la seule instruction mentionnée sur le site Web de RVM (en utilisant git).

Ensuite, j'ai installé Ruby versions 1.9.2 et 1.8.7 en utilisant:

rvm install 1.9.2
rvm install 1.8.7

Cependant, je ne trouve pas le binaire Ruby. Lorsque j'essaie d'exécuter la commande, le message d'erreur suivant s'affiche:

[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

Voici le résultat de 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]#
33
Yash Desai

RVM nécessite un ajout mineur à votre ~/.bashrc ou ~/.bash_profile pour l'initialiser lorsque vous vous connectez. Il est spécifié dans les documents d'installation de la section Post-installation . As-tu fais ça?


D'après votre sortie rvm info, il semble que vous n'avez pas terminé votre installation. Toutes les entrées de la sortie doivent avoir des valeurs correspondantes. Donc, je suppose que vous n'avez pas ajouté:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM into a Shell session.

sur votre ~/.bashrc ou ~/.bash_profile, puis démarrez une nouvelle session. 

Si vous effectuez une installation «multi-utilisateur», vous devrez en faire beaucoup plus. Avez-vous modifié /etc/profile ou, si vous utilisez Bash comme shell, avez-vous modifié /etc/bash.bashrc pour inclure:

 # Charger RVM s’il est installé, 
 # Essayer d’abord de charger l’installation de l’utilisateur 
 # Puis essayer de charger l’installation racine, si l’installation de l’utilisateur n’est pas là .
 Si [-s "$ HOME/.rvm/scripts/rvm "]; puis
 . "$ HOME/.rvm/scripts/rvm" 
 Elif [-s "/ usr/local/rvm/scripts/rvm"]; puis
 . "/usr/local/rvm/scripts/rvm"
fi

et a commencé une nouvelle coquille?

Personnellement, je n'aime pas autant l'installation multi-utilisateur que l'installation mono-utilisateur, et je ne le recommande pas, mais votre kilométrage peut varier.


À titre d'information: lors d'une discussion avec les responsables RVM de IRC] l'année dernière, ils m'ont dit qu'ils ne recommandaient pas l'installation à l'échelle du système, mais plutôt l'installation "mono-utilisateur" locale, même pour les serveurs.

57
the Tin Man

J'ai installé Ruby on Rails sur une machine virtuelle Ubuntu 11.10 en utilisant " COMMENT INSTALLER Ruby on Rails IN UBUNTU 11.10 ".

Après l'avoir installé, je rencontrais le même problème. La seule chose qui semble manquer dans le tutoriel, à mon avis, est la commande suivante:

rvm --default use 1.9.2

Bien que Ruby soit correctement installé, RVM semble redéfinir à chaque session, Ruby doit être utilisé. Le problème était que Ruby, par défaut, désignait le "système Ruby" et que, dans mon cas, celui-ci ne désignait nulle part et que l'appel rvm info renvoyait un résultat similaire à la publication initiale.

Pour résoudre ce problème, l’une des commandes suivantes doit être utilisée:

rvm  --default use 1.9.x

ou (valable uniquement pour la session en cours)

rvm use 1.9.x

Avant de pouvoir démarrer le serveur, je suis également tombé sur " ExecJS et ne parvenais pas à trouver un runtime JavaScript ". Comme proposé dans plusieurs réponses, I résolu en ajoutant les lignes suivantes au fichier Gemfile.

gem 'execjs'

gem 'therubyracer'

et en exécutant bundle install ensuite.

13
Micael Queiroz

J'ai eu le même problème (avec Ubuntu 13.10) Pour le résoudre 

$ source .rvm/scripts/rvm 

et pour le long terme 

$ 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]
11
Fredy

Voici comment corriger les rubis non détectés dans RVM.

Tout d’abord, j’ai fait un test de santé mentale pour s’assurer que tout cela avait l’air superbe, puis j’ai couru.

rvm use Ruby --default

qui a fait le travail. Cela revient à cette commande: 

-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)
4
zee

Assurez-vous de source/usr/local/lib/rvm? echo 'source /usr/local/lib/rvm' >> ~/.bashrc et relogez-vous via SSH/démarrez une nouvelle instance de Bash.


Pour clarifier, puisqu'il y a une certaine confusion: il existe deux manières d'installer RVM: une installation "par utilisateur" et une installation "à l'échelle du système".

Pour la plupart des utilisations quotidiennes, vous souhaitez utiliser une installation "par utilisateur", qui installe RVM dans ~/.rvm. Les installations à l’échelle du système conviennent aux serveurs, où un ensemble de rubis doit être utilisé. Dans ce cas, l'emplacement par défaut de RVM est /usr/local/rvm.

D'après votre question, il semble que vous ayez installé RVM en tant qu'installation à l'échelle du système.

Pour utiliser RVM, vous devez l'initialiser en exécutant un script à chaque fois que vous vous connectez. Pour ce faire facilement, vous devez inclure le fichier dans votre fichier ~/.bashrc (ou ~/.bash_profile si vous êtes sous OS X) afin fois que vous vous connectez. Pour une installation par utilisateur, ajoutez le texte suivant au fichier:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

pour les installations à l'échelle du système, utilisez plutôt ce texte:

[[ -s "/usr/local/lib/rvm" ]] && . "/usr/local/lib/rvm"

Si vous avez effectivement une installation sur l’ensemble du système, vous devrez également vous assurer que vous êtes membre du groupe rvm; tapez ce qui suit pour le faire:

Sudo adduser `whoami` rvm

Une fois que vous avez apporté les modifications nécessaires, déconnectez-vous de votre session, puis reconnectez-vous. Une fois que vous l'avez fait, rvm use 1.9.2 doit définir un ensemble de variables d'environnement que vous pouvez voir en saisissant rvm info. Si tout va bien, Ruby devrait s'exécuter correctement.

4
Michelle Tilley

J'avais couru dans le même problème. Je viens d'exécuter la commande:

/bin/bash --login
4
Bruno Paulino

Ruby n'est pas sur votre chemin. En termes simples, RVM gère le basculement de Ruby sur votre chemin. Regardez le résultat de l'outil de ligne de commande

printenv

Vous devriez voir quelque chose de similaire à:

PATH=/Users/myuser/.rvm/gems/jruby-1.5.6/bin

Voir la réponse de Tin Man, elle devrait vous aider si vous devez y aller.

2
Jared Knipp

J'ai défini mon shell en tant que shell de connexion (terminal ouvert> Edition> Préférences de profil> onglet Commande> "Exécuter la commande en tant que shell de connexion") bien que je ne sois pas sûr à 100% que c'est nécessaire.

Une fois que vous avez fini d’installer RVM + Ruby, vous devez spécifier quel Ruby vous allez utiliser. J'aime utiliser

rvm use --latest --default

0
James L.

J'ai remarqué que la ligne source était correctement dans le fichier .bash_profile mais j'ai continué à avoir la commande Ruby introuvable. Donc, quand j'ai vérifié rvm list, j'ai découvert qu'aucun Ruby n'avait été sélectionné:

rvm list

rvm rubies

   Ruby-2.4.0 [ x86_64 ]

# Default Ruby not set. Try 'rvm alias create default <Ruby>'.

# => - current
# =* - current && default
#  * - default

puis j'ai fait la sélection viarvm use 2.4.0et vérifié à nouveau

rvm list

rvm rubies

=> Ruby-2.4.0 [ x86_64 ]

# Default Ruby not set. Try 'rvm alias create default <Ruby>'.

# => - current
# =* - current && default
#  * - default

Regardez la flèche fermez le Ruby installé et les sous-titres commentés. Après que Ruby -v m'a finalement répondu

Ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]

J'espère que cette aide. À votre santé.

edit: Vous pouvez utiliserrvm --default use 2.4.0pour le définir comme version Ruby par défaut

0
Shad