Je suis sur 12.04 LTS et je suis en train de faire Ruby sur Rails développement. Quand je démarre mon terminal et que je tape Ruby -v
, mon Ruby sera répertorié sous le nom 1.8.7. Quand je tape /bin/bash --login
puis Ruby -v
le listera 2.0.0, ce que je veux pour pouvoir exécuter Rails 4.0. Le problème est que je dois taper /bin/bash --login
à chaque démarrage de mon terminal. Est-il possible de me connecter automatiquement à /bin/bash
lorsque j'ouvre mon terminal?
Maintenant, vous n’avez plus besoin de relancer/bin/bash --login.
La solution qui me convient consiste à ajouter la ligne suivante à votre fichier .bashrc
:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a Shell session *as a function*
Techniquement, RVM est chargé dans votre session Shell en tant que fonction. Si vous utilisez Bash comme shell, cette intégration est effectuée par le fichier de configuration .bash_profile
. Comme vous le savez peut-être, il existe différents "types" de sessions Shell, à savoir login shells, interactifs coquilles et coquilles non interactives . En fonction de votre session bash, différents fichiers de configuration sont impliqués. Le fichier de configuration .bash_profile
, qui gère l'intégration de RVM, est inclus dans les sessions de login Shell, mais pas dans les sessions "simplement" interactives ou non interactives. Pour plus de détails, vous pouvez lire dans la documentation RVM .
Vous devez donc vous assurer que lorsque vous démarrez votre terminal, la session Shell est lancée en tant que session Shell de connexion. Il existe probablement un paramètre avec votre émulateur de terminal pour cela. Avec la commande /bin/bash --login
que vous avez utilisée jusqu’à présent, vous ne faites que démarrer une autre session dans votre session Shell, mais un shell de connexion.
Vous avez probablement installé Ruby par le gestionnaire de paquets (apt-get
) en plus de l’installer via RVM. Ainsi, lorsque RVM n'est pas intégré à votre session Shell, vous vous retrouvez avec le "système Ruby". C'est pourquoi vous vous "repliez" sur Ruby 1.8.7.