RVM installé par Ruby ne fonctionne pas?

j'ai installé RVM en utilisant l'instruction simple mentionnée sur le site web RVM (en utilisant git).

puis j'ai installé Ruby version 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, j'obtiens l'erreur suivante:

[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 la sortie 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 (wayneeseguin@gmail.com) [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
demandé sur the Tin Man 2011-02-06 07:05:08

9 réponses

RVM nécessite un ajout mineur à votre ~/.bashrc ou ~/.bash_profile pour l'initialiser lorsque vous vous connectez. Il est spécifié dans les docs d'installation dans la section Post Install . Avez-vous le faire?


pour votre sortie rvm info , il semble que vous n'ayez pas terminé votre installation. Toutes les entrées de la sortie doivent avoir des valeurs correspondantes. Donc, je soupçonne que vous n'avez pas ajouté:

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

à votre ~/.bashrc ou ~/.bash_profile et puis a commencé une nouvelle session.

Si vous faites des "Multi-Utilisateur" installation, vous aurez besoin de faire beaucoup plus. Avez-vous modifié /etc/profile , ou, si vous utilisez Bash comme shell, avez-vous modifié /etc/bash.bashrc pour comprendre:

# 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

et a démarré un nouveau shell?

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


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

54
répondu the Tin Man 2016-03-21 18:07:49

j'ai installé Ruby sur Rails sur une Ubuntu 11.10 VM, en utilisant " comment installer RUBY sur RAILS dans UBUNTU 11.10 ".

après l'avoir installé, j'ai rencontré 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 dans chaque session Ruby doit être utilisé. Le problème était que le Ruby par défaut a souligné le "système ruby", et, dans mon cas, c'est un relevé de nulle part et fait l'appel rvm info retourner un résultat similaire pour le post initial.

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 que je puisse démarrer le serveur, je suis tombé sur " ExecJS et je ne pouvais pas trouver un JavaScript runtime ". Comme proposé dans plusieurs réponses, je résolu en ajoutant les lignes suivantes dans le Gemfile.

gem 'execjs'

gem 'therubyracer'

et ensuite bundle install .

13
répondu Micael Queiroz 2017-05-23 12:17:55

j'ai eu le même problème (en utilisant Ubuntu 13.10) pour le résoudre

$ source .rvm/scripts/rvm 

et à 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]
10
répondu Fredy 2016-11-22 15:32:18

Voici comment fixer des rubis non détectés à l'intérieur du RVM.

tout d'abord, j'ai fait un contrôle de santé mentale pour s'assurer que tout semble bien, puis couru

rvm use ruby --default

qui a fait le travail. Il s'agit de 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
répondu zee 2015-12-22 22:51:16

vous assurez-vous de la source /usr/local/lib/rvm? echo 'source /usr/local/lib/rvm' >> ~/.bashrc et relog via SSH/start une nouvelle instance de Bash.


pour clarifier, car il y a une certaine confusion: il y a deux façons d'installer RVM: une installation" par utilisateur", et une installation" à l'échelle du système".

pour la plupart des utilisations quotidiennes, vous voulez utiliser une installation" par utilisateur", qui installe RVM dans ~/.rvm . À l'échelle du système installe sont bonnes pour les serveurs, où l'on ensemble de Rubis doit être utilisé. L'emplacement par défaut pour RVM dans ce cas est /usr/local/rvm .

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

pour utiliser RVM, il faut l'initialiser en exécutant un script chaque fois que vous vous connectez. Pour ce faire facilement, vous incluez le fichier dans votre fichier ~/.bashrc (ou ~/.bash_profile si vous êtes sur OS X), de sorte qu'il est automatiquement lancé à chaque fois que vous vous connectez. Pour une installation par utilisateur, ajouter le texte suivant au dossier:

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

pour les installations à l'échelle du système, utilisez ce texte à la place:

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

si vous avez effectivement une installation à l'échelle du système, vous devez également vous assurer que vous êtes membre du groupe rvm; pour ce faire, tapez:

sudo adduser `whoami` rvm

une fois que vous avez effectué les changements nécessaires, déconnectez-vous de votre session et ouvrez une nouvelle session. Une fois que vous avez fait, rvm use 1.9.2 devrait mettre un tas de les variables d'environnement, que vous pouvez voir en tapant rvm info . Si tout va bien, ruby devrait s'exécuter correctement.

4
répondu Michelle Tilley 2016-03-21 18:04:47

j'avais couru dans le même numéro. Je viens d'exécuter la commande:

/bin/bash --login
3
répondu Bruno Paulino 2015-11-02 09:18:35

Ruby n'est pas sur votre chemin. En termes simples, RVM gère la commutation de Ruby dans votre chemin. Regardez la sortie de l'outil en 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, il devrait vous obtenir où vous devez aller.

2
répondu Jared Knipp 2015-12-22 22:56:32

j'ai remarqué que la ligne source était correctement entrée .bash_profile mais je continuais à avoir ruby command introuvable. Donc, quand j'ai coché rvm list , j'ai compris qu'aucun ruby n'était 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 par rvm use 2.4.0 et j'ai 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 fermer le rubis installé et les sous-titres commentés. Après cela ruby -v enfin répondu moi

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

j'espère que cette aide. Acclamation.

edit: Vous pouvez utiliser rvm --default use 2.4.0 pour la définir par défaut version de ruby

0
répondu Shad 2017-01-08 07:12:07

j'ai défini mon interpréteur de commandes comme un interpréteur de commandes (open terminal > Edit > Profile Preferences > command tab > "Run command as a login shell") bien que je ne sois pas sûr à 100% qu'il soit nécessaire.

une fois que vous avez installé RVM + Ruby, vous devez spécifier quel ruby vous allez utiliser. J'aime utiliser

rvm use --latest --default

0
répondu James L. 2017-03-21 21:17:02