Comment changer ma version de Ruby en utilisant RVM?


111

Je ne parviens pas à changer la version actuelle de Ruby:

  ~  rvm list

rvm rubies

   ruby-1.9.2-p290 [ x86_64 ]
   ruby-1.9.3-p0 [ x86_64 ]

  ~  rvm use ruby-1.9.3-p0

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

êtes-vous sûr d'avoir installé rvm correctement? quel système d'exploitation utilisez-vous?
lesce

2
rvm infoVeuillez joindre le résultat de à votre question.
the Tin Man

J'ai eu un problème similaire en installant rvm avec apt-get sur Ubuntu 11.10, j'ai dû le supprimer et le réinstaller avec$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
lesce

4
Avez-vous la fonction de chargement RVM dans le script de démarrage de votre shell? [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"est le code à utiliser. Si RVM est installé dans votre chemin, mais que vous ne l'avez pas dans votre script de démarrage, vous pouvez obtenir l' RVM is not a functionerreur.
Michelle Tilley

Cette solution fonctionne pour moi - rvm.io/integration/gnome-terminal
gotqn

Réponses:


122

Corrigé. J'avais besoin d'ajouter:

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

à .zshrc


57

Cela m'est arrivé aussi. J'ai eu:

export PATH=~/.rvm/bin:$PATH

Ajouté dans mon .bashrc.

Tout ce que j'avais à faire était d'en ajouter un autre

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

dans le même fichier et cela a fonctionné! Bien sûr, vous devez redémarrer votre terminal après cela.


1
j'avais cette même ligne (le [[-s "$ HOME / ...) dans mon ~ / .bash_profile et cela ne semblait pas" prendre "quand j'ai ouvert un nouveau terminal ... mais quand j'ai ajouté la ligne sous la ligne PATH dans le ~ / .bashrc, cela a fonctionné - ce qui signifie que je pourrais taper rvm use 1.9.3 et il reconnaîtrait immédiatement rvm comme une commande sans que je doive d'abord taper source ~ / .bash_profile - i ' Je ne suis pas une personne Linux, donc cela me trouble, mais je suis heureux que cela ait fonctionné. Peut-être que quelqu'un peut clarifier ma confusion.
TimDog

c'est super, je viens de mettre cette ligne dans ~ / .bashrc, ça marche. mais je ne sais pas non plus pourquoi.
Jack Ma

Ouais ça marche. Mais chaque fois que je redémarre ma machine, je dois donner les commandes mentionnées ci-dessus. Si je ne fournis pas les commandes, cela indique que rvm n'est pas une fonction.
Apurva Mayank

11

Votre shell ne connaît pas la fonction RVM. Une fois que vous l'avez installé, il vous indique comment vous en occuper. Ou allez sur la page d' installation sur le site RVM et consultez la section intitulée "2. Chargez RVM dans vos sessions shell en tant que fonction"

Exécutez ceci une fois pour ajouter la ligne qui charge rvm dans votre ~ / .bash_profile:

$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

ou ajoutez-le manuellement vous-même. (Notez que sur certains systèmes, vous voudrez le mettre à d'autres endroits, par exemple sur mon système, Mac OSX Lion, je le mets dans ~ / .profile)


J'utilise OS X Snow Leopard, mettre cette ligne dans mon .profile a fait l'affaire pour moi.
Heldraug

9

(Kubuntu 11.10) Le ~/.bash_profiles'appelle maintenant~/.profile

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.profile
source ~/.profile
rvm info # And now the fields display

6

Pour modifier la version par défaut de ruby:

Dans Ubuntu 11.10
, modifiez les paramètres de votre terminal GNOME:

Accédez au Terminal et suivez les instructions suivantes:

1.  Edit > Profile Preferences
2.  Open Title and Command Tab               
3.  Check Run Command as a login Shell 
4.  Restart terminal

Exécutez cette commande sur le terminal:

rvm --default use ruby_Version

5

Pour ajouter toutes les fonctionnalités RVM à votre .bash_profile, vous devez utiliser la commande suivante:

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

Après cela, vous devez recharger le shell actuel ou ouvrir une nouvelle session de terminal et taper la commande suivante pour recharger .bash_profile:

source .bash_profile

4

La solution ci-dessus ne fonctionnera que si RVM est installé pour l'utilisateur actuel. Une solution plus générale utiliserait la variable de chemin RVM:

# The following code loads RVM as user or system install:
[[ -s "$rvm_path/scripts/rvm" ]] && . "$rvm_path/scripts/rvm"

rvm_path=/home/myuser/.rvm . /home/myuser/.rvm/scripts/rvm
Jose Alban

3

Je devais juste invoquer la source ~/.bash_profile


3

Sur une nouvelle installation d'Ubuntu 12.04, j'ai rencontré le même problème. Le programme d'installation RVM crée ou ajoute à un fichier appelé ~ / .bash_login le bit de code nécessaire pour éviter le problème d'origine:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

Cependant, cela ne semble pas être invoqué. L'ajouter à ~ / .bashrc a résolu le problème pour moi.


1

Installation de RVM, voir ici http://octopress.org/docs/setup/rvm/


N'utilisez pas de sources non autoratatives pour installer RVM. La page d'installation RVM dit spécifiquement: "Notez que les didacticiels externes ne sont PAS pris en charge, qu'ils fonctionnent ou non. Les didacticiels sont excellents, mais nous avons passé d'énormes heures de travail à déboguer le processus d'installation. Veuillez utiliser le ou les processus d'installation de ce site uniquement, car ce sont les seuls types et méthodes d'installation pris en charge. "
the Tin Man

1

Dans mon cas sur Ubuntu, l'entrée dans ~ / .bashrc avait:

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

au lieu de:

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

Remarquez l'espace manquant entre. et "$ HOME.

De plus, si tel est le problème, vous devriez également remarquer une erreur en haut lorsque vous démarrez votre terminal.


0

J'ai eu une installation globale de RVM, qui exécute /etc/profile.d/rvm.sh. Cependant, ce script nécessite la définition de BASH_VERSION ou ZSH_VERSION. Je courais depuis crontab, qui utilise "sh".

J'ai créé un script wrapper qui utilise / bin / bash pour générer /etc/profile.d/rvm.sh.


0

Vous devez modifier les préférences de votre émulateur de terminal pour autoriser la connexion au shell. Parfois, il est nécessaire d'utiliser /bin/bash --logincomme commande.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.