2010-10-23 25 views
8

Je n'arrive pas à obtenir le fichier Ruby Version Manager rvm à partir de mon profil Ubuntu 10.04. Le code:Le rvm d'origine de mon profil Ubuntu ne fonctionne que manuellement, pas au niveau de la connexion

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

... jamais fait ce que je pense à (dire me donner le programme de RVM quand j'ouvre un nouveau shell ou démarrer une nouvelle session); mais si j'exécute

source .profile 

dans un nouveau shell après la connexion, cela fonctionne! Pourquoi cela fonctionnera-t-il quand je le trouve manuellement, mais pas automatiquement lors de la connexion?

+0

Quelle coquille utilisez-vous? Avez-vous aussi un .bash_profile? – SimonJ

+0

Question dupliquée (ou au moins identique): http://stackoverflow.com/questions/3982244/postinstall-rvmruby-version-manager-without-root-access – joschi

+0

Comment vous connectez-vous? J'utilise gdm3 et j'ai essayé de me procurer le fichier rvm à partir de ~/.xprofile, mais ~ /.xprofile est géré par/bin/sh et ne supporte pas cela; dans mon cas (hack) j'ai modifié/etc/gdm3/Xsession pour utiliser '#!/bin/bash'. En fonction de la manière dont vous vous connectez, vérifiez si .profile est réellement utilisé (par exemple, PROFILE_USED = 1; export PROFILE_USED'). Si c'est le cas, il peut être exécuté par le mauvais shell (il est uniquement destiné à être exécuté par/bin/sh "ou mieux"); Si ce n'est pas le cas, essayez .xprofile. Il vous manque aussi a], mais c'est probablement une faute de frappe ici. –

Répondre

0

La page d'installation RVM comporte une série de choses à vérifier pour tester l'initialisation de RVM. Lisez la section "Dépannage de votre installation" à la fin du RVM installation page.

En outre, voici une description de how Bash reads its startup files qui peut aider avec ce genre de problème.

6

Il semblerait que Ubuntu gère c'est des scripts d'ouverture de session différemment que la plupart des autres distributions Linux

http://ubuntuforums.org/showpost.php?p=9127226&postcount=6

Le message ci-dessus contient des conseils que les connexions GDM dans Ubuntu ne traitent pas .bash_profile ou .profile la façon la plus d'autres distributions de Linux font. J'ai dû mettre la ligne chargeant RVM dans le ~/.bashrc et cela n'a pas encore causé de problèmes.

3

Recherche de sources $ HOME/.rvm suppose que vous avez installé un seul utilisateur RVM, en particulier l'utilisateur dont le répertoire de base est $ HOME. Probablement, sur votre système Ubuntu, RVM a été système installé large, et donc vous devez localiser les scripts RVM en tant que tels:

Dans votre fichier .bashrc ajouter:

\# Set rvm path 

[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm" 

avant cette ligne; cette ligne va quitter et ne pas exécuter quelque chose après elle, ce qui est bien pour les connexions interactives, le bit serait un problème si vous utilisez des connexions SSH non interactives à des fins d'automatisation.

\# If not running interactively, don't do anything 

[ -z "$PS1" ] && return 
+0

merci cela a aidé! – 1337holiday

0

J'ai eu un problème avec l'éditeur Atom ne pas ramasser environnement RVM et donc de ne pas trouver la commande rubocop sur Ubuntu 16.04. Mais le problème n'était pas là quand j'ai commencé Atom du terminal gnome. Ce que j'ai trouvé était que script RVM ~/.rvm/scripts/rvm que vous êtes censé être charger dans votre .profile a ces lignes au début:

if 
    builtin test -n "${BASH_VERSION:-}" -o -n "${ZSH_VERSION:-}" -o -n "${KSH_VERSION:-}" 
then 
    ... 
else 
    return 0 
fi 

Étrangement, lorsqu'il est exécuté lors de la connexion, j'ai trouvé $BASH_VERSION être vide (alors que dans le terminal gnome c'est sth comme 4.3.46(1)-release), donc le script ferait un retour anticipé en laissant RVM non chargé correctement. J'ai essayé de mettre BASH_VERSION à quoi que ce soit et cela a bien fonctionné.

Voici le code complet de mon .profile qui charge RVM:

local rvm_home="${HOME}/.rvm" 
export PATH="$PATH:${rvm_home}/bin" 
if [ -z "$BASH_VERSION" ]; then 
    export BASH_VERSION=4 
fi 
source "${rvm_home}/scripts/rvm"