Je viens d'installer rvm sur mon mac, mais je reçois cet avertissement sur les commandes globales
Attention! PATH n'est pas correctement configuré, '/usr/local/rvm/gems/Ruby-1.9.3-p194/bin' n'est pas à la première place, cela est généralement causé par les fichiers d'initialisation de Shell - vérifiez-les pour 'PATH = .. . ', cela pourrait aussi aider à rajouter RVM à vos fichiers .fot:' rvm get stable --auto-dotfiles ', à corriger temporairement dans cette session de shell:' utilisation de rvm Ruby-1.9.3-p194 '.
Mon $ PATHS confirme l'avertissement:
$echo :$PATH:
:/usr/local/rvm/bin:/usr/local/heroku/bin:/usr/local/rvm/gems/Ruby-1.9.3-p194/bin:/usr/local/rvm/gems/Ruby-1.9.3-p194@global/bin:/usr/local/rvm/rubies/Ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:
Comme suggéré, j'ai d'abord essayé en vain rvm get stable --auto-dotfiles
, puis j'ai vérifié mes fichiers d'initialisation de shell. Mon /.bash_profile:
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
export PATH=/usr/local/share/python:$PATH
PATH=$PATH:$HOME/bin:/opt
Mon /Users/User/.bash_profile semble être le coupable:
export PS1="[\w]$"
alias ll='ls -laGH'
alias .='echo $PWD'
### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"
# rvm
PATH=/usr/local/rvm/bin:$PATH
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a Shell session *as a function*
La raison en est que si je supprime Heroku Toolbelt et les chemins rvm (réponses suggérées par d’autres questions relatives au débordement de pile), /usr/local/rvm/gems/Ruby-1.9.3-p194/bin
serait à la première place et le problème serait résolu. Cependant, je ne sais pas quoi faire avec le Heroku Toolbelt. De plus, PATH=/usr/local/rvm/bin:$PATH
ne devrait-il pas placer rvm en premier?
Je dois manquer une solution triviale.
Notes complémentaires: $rvm --debug get head
ne produit aucune note d'installation à ce sujet, à l'exception de l'avertissement affiché ci-dessus.
Mise à jour: l'appel de rvm system
résout le problème, mais uniquement dans la session Shell en cours. $echo $PATH
produit maintenant:
:/usr/local/heroku/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/rvm/bin:
Qu'est-ce qu'une solution permanente?
J'ai le même problème avec rvm 1.25.26.
J'ai modifié ~/.bashrc
comme suit:
## rvm
PATH="$GEM_HOME/bin:$HOME/.rvm/bin:$PATH" # Add RVM to PATH for scripting
[ -s ${HOME}/.rvm/scripts/rvm ] && source ${HOME}/.rvm/scripts/rvm
L'avertissement est déclenché par la fonction __rvm_path_match_gem_home_check () dans $HOME/.rvm/scripts/functions/cli
.
Si le début de $PATH
ne commence pas à partir de $GEM_HOME/bin
, un message d'avertissement s'affiche.
__rvm_path_match_gem_home_check()
{
(( ${rvm_silence_path_mismatch_check_flag:-0} == 0 )) || return 0
[[ -n "${GEM_HOME:-}" ]] || return 0
case "$PATH:" in
($GEM_HOME/bin:*) true ;; # all fine here
(*:$GEM_HOME/bin:*)
__rvm_path_match_gem_home_check_warning "is not at first place"
;;
(*)
__rvm_path_match_gem_home_check_warning "is not available"
;;
esac
}
Dans mon cas, Heroku avait ajouté ce qui suit à mon .bashrc:
### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"
Remarquez comment cela se prépare au chemin. Tout ce que je devais faire était de le changer pour:
### Added by the Heroku Toolbelt
export PATH="$PATH:/usr/local/heroku/bin"
Et mon problème était résolu!
Si vous n'avez pas Heroku, recherchez tout ce qui pourrait se préparer à votre chemin. Vraiment, RVM veut juste s'assurer qu'il a une chance de charger Ruby avant que tous les joyaux qui se comprennent dans le chemin ne soient chargés.
La solution était de courir
$rvm install Ruby-head
$rvm use Ruby-head
avec un $rvm docs generate-ti
optionnel
J'utilisais une version obsolète de Ruby sur mon système.
Recherchez vos fichiers de configuration pour:
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
Remplacez cette ligne par:
export PATH="$HOME/.rvm/bin:$PATH" # Add RVM to PATH for scripting
Pour vous assurer que le code RVM se trouve au début de votre $ PATH. Assurez-vous également qu'aucun autre code ne se place au début de $ PATH.
Comme j'utilisais la version ubuntu de rvm, j'avais besoin de mettre cela dans mon .profile:
PATH="$GEM_HOME/bin:/usr/share/rvm/bin:$PATH" # Add RVM to PATH for scripting
[ -s /usr/share/rvm/scripts/rvm ] && source /usr/share/rvm/scripts/rvm
Droite. J'évitais cette réponse alors que je passais des heures à faire des recherches sans succès. J'espère que cela sauvera du temps à quelqu'un d'autre.
Mon problème était d'avoir 2 têtes Ruby installées et apparemment, la version Ruby était également un problème.
➜ rvm list
Warning! PATH is not properly set up, '/home/ma/.rvm/gems/Ruby-1.8.7-head/bin' is not at first place.
Usually this is caused by Shell initialization files. Search for 'PATH=...' entries.
You can also re-add RVM to your profile by running: 'rvm get stable --auto-dotfiles'.
To fix it temporarily in this Shell session run: 'rvm use Ruby-1.8.7-head'.
To ignore this error add rvm_silence_path_mismatch_check_flag=1 to your ~/.rvmrc file.
rvm rubies
=> Ruby-1.8.7-head [ x86_64 ]
Ruby-1.8.7-p374 [ x86_64 ]
Ruby-2.3.0 [ x86_64 ]
Ruby-2.4.0 [ x86_64 ]
* Ruby-head [ x86_64 ]
# => - current
# =* - current && default
# * - default
Dans ce cas, (en essayant toutes les solutions ci-dessus, this et this ), définissez ma valeur par défaut sur Ruby-head [ x86_64 ]
et redémarrez le terminal avec le Warning!
ET ma version actuelle de Ruby persistait comme le montre l'extrait ci-dessus.
Pour résoudre ce problème:
rvm remove Ruby-1.8.7-head
Maintenant, si je redémarre le terminal:
➜ rvm list
rvm rubies
Ruby-1.8.7-p374 [ x86_64 ]
Ruby-2.3.0 [ x86_64 ]
Ruby-2.4.0 [ x86_64 ]
=* Ruby-head [ x86_64 ]
# => - current
# =* - current && default
# * - default
Il semble, et à la fin de .bashrc, vous devez vous assurer que le chemin d’installation est au début de $PATH