Ci-dessus ne fonctionne pas la première fois, fonctionne la deuxième fois.
Essayez de définir Ruby version sur 2.0.0 pour toutes les nouvelles fenêtres du shell.
Faire
$ rvm use 2.0.0 --default
donne
Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/Ruby-1.9.3-p125/
bin' is not at first place,
usually this is caused by Shell initialization files - check them for '
PATH=...' entries,
it might also help to re-add RVM to your dotfiles: 'rvm get stable --au
to-dotfiles',
to fix temporarily in this Shell session run: 'rvm use Ruby-1.9.3-p125'
.
Using /home/durrantm/.rvm/gems/Ruby-2.0.0-p247
Puis faire la même chose
$ rvm use 2.0.0 --default
ne donne maintenant aucune erreur, c.-à-d.
$ rvm use 2.0.0 --default
Using /home/durrantm/.rvm/gems/Ruby-2.0.0-p247
durrantm.../durrantm$
mais de nouvelles fenêtres me donnent toujours Ruby 1.9.3, pas 2.0.0
Mon fichier .bashrc
Contient:
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "/home/durrantm/.rvm/scripts/rvm" ]] && . "/home/durrantm/.rvm/scripts/rvm"
Mon .bash_profile a:
source ~/.profile
case $- in *i*) . ~/.bashrc;; esac
En essayant
rvm get stable
semble fonctionner mais à la fin de beaucoup de sorties vertes:
Could not update RVM, get some help at #rvm IRC channel at freenode servers.
Une nouvelle fenêtre de terminal avec rvm list rubies
Indique ceci:
$ rvm list rubies
Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/Ruby-1.9.3-p125/bin' is not at first place,
usually this is caused by Shell initialization files - check them for 'PATH=...' entries,
it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
to fix temporarily in this Shell session run: 'rvm use Ruby-1.9.3-p125'.
rvm rubies
=> Ruby-1.9.3-p125 [ x86_64 ]
Ruby-1.9.3-p194 [ x86_64 ]
* Ruby-2.0.0-p247 [ x86_64 ]
# => - current
# =* - current && default
# * - default
La réponse était de mettre ceci:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
# Load RVM into a Shell session *as a function*
** au bas ** (dernière ligne - important!) de mon fichier .bashrc. Je l'avais dans mon fichier .bash_profile (je suis sur Ubuntu) et cela ne fonctionnait que partiellement, ce qui entraînait des erreurs déroutantes.
J'étais coincé après avoir désinstallé rvm avec
rvm implode
ensuite, après la réinstallation de rvm, il a reçu le même message d'erreur. Après avoir parcouru la page de git hub de wayne seguin. Il répertorie les outils sur sa page et recommande d'utiliser
rvm reset
après une installation. Cela a corrigé mon message d'erreur. Aucune modification PATH requise.
Ce n’est peut-être pas la meilleure façon de résoudre ce problème, mais j’ai ajouté cette ligne au bas de mon .zshrc (cela fonctionnera aussi avec .bashrc!)
export PATH="$GEM_HOME/bin:$PATH"
J'ai essayé la solution de Michael Durrant et cela n'a pas fonctionné pour moi. mais j'ai couru rvm get stable --auto-dotfiles
et il a commencé à fonctionner comme souhaité.
J'espère que ça aide
Ce n’est pas une réponse à la question posée, mais à la question connexe posée par la plupart des commentateurs/répondants - Pourquoi faut-il mettre la ligne de la VMR au bas du fichier rc du shell?
La réponse est simple.
$PATH
, et.bashrc
(ou son équivalent pour votre shell par défaut) est lu et interprété ligne par ligne de haut en bas.Alors imaginez le scénario suivant:
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
$ [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
/Users/sankalp/.rvm/gems/Ruby-1.9.3-p547/bin:/Users/sankalp/.rvm/gems/Ruby-1.9.3-p547@global/bin:/Users/sankalp/.rvm/rubies/Ruby-1.9.3-p547/bin:/Users/sankalp/bin:/usr/texbin/:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
$ export PATH=<something>:$PATH
$ echo $PATH
<something>:/Users/sankalp/.rvm/gems/Ruby-1.9.3-p547/bin:/Users/sankalp/.rvm/gems/Ruby-1.9.3-p547@global/bin:/Users/sankalp/.rvm/rubies/Ruby-1.9.3-p547/bin:/Users/sankalp/bin:/usr/texbin/:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
Clairement, si quelque chose est présent dans le fichier d'initialisation du shell after la ligne RVM et apporte des modifications à $ PATH, plus particulièrement si elle ajoute des répertoires au début de $PATH
, alors ces modifications pousseront les répertoires ajoutés par rvm à partir de leur première position. RVM, lorsqu’il est appelé, constatera que ses répertoires binaires Ruby sont pas au tout début de $PATH
et BAM! vous aurez l'avertissement :).
J'espère que cela clarifie les choses.
Je faisais face au même problème. J'ai trouvé ça dans le fichier bashrc
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
export PATH=$HOME/local/bin:$PATH
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
plusieurs entrées pour rvm. J'ai commenté une entrée et ça fonctionne bien.
#export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
#export PATH=$HOME/local/bin:$PATH
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
J'ajoute simplement mon expérience: si vous utilisez .bash_profile
, vérifier si .bashrc
n'interfère pas. Tuer .bashrc
en faveur de la configuration unique de Bash par .bash_profile
fonctionne dans ce cas.
J'ai une question complémentaire à cela (j'aimerais pouvoir simplement ajouter un commentaire - mais je n'ai pas assez de crédits). J'ai eu ce même problème - et quand j'ai suivi le script RVM qui a été suggéré d'utiliser --auto-dotfiles
, J’ai eu des problèmes avec le script Shell qui a effacé mon fichier . Bashrc_profile.
Quoi qu'il en soit, je suis finalement arrivé à la même réponse que celle indiquée ci-dessus, en plaçant cette ligne au bas du fichier . Bashrc. [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Avez-vous trouvé pourquoi cela fonctionne comme cela, et non avec la ligne au milieu du fichier .bashrc? Avez-vous une idée de la manière dont Unix charge la variable d’environnement qui permet à RVM de fonctionner dans un cas et pas dans un autre?
J'ai nettoyé tout ce qui avait un .rvm dedans depuis mon chemin = line dans mon .zshrc
Cela a résolu le problème pour moi, où l'autre réponse ici (trouver le script rvm ou devenir stable avec auto dotfiles) ne le faisait pas.
J'ai trouvé cette commande très utile. Cela résout mon cas. Donc, si quelqu'un a le même problème, essayez ceci: rvm get stable --auto-dotfiles
rvm install Ruby-head
Corrigé le problème pour moi - peu de temps, mais a fait le tour. Je ne sais pas si cela a entraîné des mises à jour non annoncées de mes fichiers bash.
Vous pouvez ajouter
rvm_silence_path_mismatch_check_flag=1
à ton ~/.rvmrc
fichier. C'est ce que le message d'avertissement suggère maintenant.
Cela a fonctionné après avoir commenté les 2 premières lignes dupliquées et les avoir ajoutées en bas. N'oubliez pas de redémarrer le terminal pour que cela fonctionne.
#[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
#[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a Shell session *as a function*
export PATH="/usr/local/opt/[email protected]/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a Shell session *as a function*
J'ai fini par enlever ~/.profile
, ~/.bashrc
et ~/.zshrc
.
Fondamentalement, je n'ai gardé que ~/.bash_profile
sur mon mac. Et il fonctionne.
Je pense que dans mon cas, il y a:
export PATH = "$ PATH: $ HOME/.rvm/bin" [[-s "$ HOME/.rvm/scripts/rvm"]] && source "$ HOME/.rvm/scripts/rvm "# Charge RVM dans une session Shell * en tant que fonction *
dans ces fichiers, et les paramètres en double confondus rvm