web-dev-qa-db-fra.com

Comment vous connectez-vous dans / bin / bash automatiquement?

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?

1
Ordep81
  • Ouvrez le terminal
  • Dans la barre de menus, sélectionnez Edition> Profils.
  • Dans l'invite ouverte Édition> Par défaut
  • Dans l'onglet "Titre et commandes" -> cocher "Exécuter la commande en tant que shell de connexion"
  • Redémarrer le terminal

Maintenant, vous n’avez plus besoin de relancer/bin/bash --login.

4
Hrishabh Gupta

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*
1
jmarceli

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.

1
Henning Kockerbeck