web-dev-qa-db-fra.com

Obtenir "Attention! PATH n'est pas correctement configuré" lors de l'utilisation de rvm 2.0.0 --default

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
101
Michael Durrant

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.

164
Michael Durrant

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.

159
brandoncontreras

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"
24

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

22
Sparkmasterflex

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.

  1. Le code rvm qui est chargé place les répertoires binaires rvm Ruby au "front" de $PATH, et
  2. .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.

8
Sankalp

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
5
Deepak Kabbur

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.

5
Ain Tohvri

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?

5
David Kim

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.

3
Caleb

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

2
castro4000

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.

1
user2164305

Vous pouvez ajouter

rvm_silence_path_mismatch_check_flag=1

à ton ~/.rvmrc fichier. C'est ce que le message d'avertissement suggère maintenant.

1
AkaZecik

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*
0
Dave

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

0
Steven Yue