Ich habe gerade rvm auf meinem Mac installiert, erhalte aber diese Warnung bei globalen Befehlen
Warnung! PATH ist nicht richtig eingerichtet. '/Usr/local/rvm/gems/Ruby-1.9.3-p194/bin' steht nicht an erster Stelle. Normalerweise wird dies durch Shell-Initialisierungsdateien verursacht. Überprüfen Sie sie auf 'PATH = .. Bei Einträgen kann es auch hilfreich sein, RVM erneut zu Ihren Dotfiles hinzuzufügen: 'rvm get stable --auto-dotfiles', um vorübergehend in diesem Shell-Sitzungslauf zu beheben: 'rvm use Ruby-1.9.3-p194'.
Mein $ PATHS bestätigt die Warnung:
$echo :$PATH:
:/usr/local/rvm/bin:/usr/local/heroku/bin:/usr/local/rvm/gems/Ruby-1.9.3-p194/bin:/usr/local/rvm/gems/[email protected]/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:
Wie vorgeschlagen, habe ich zuerst rvm get stable --auto-dotfiles
ohne Erfolg versucht, dann habe ich meine Shell-Initialisierungsdateien überprüft. Mein /.bash_profile:
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
export PATH=/usr/local/share/python:$PATH
PATH=$PATH:$HOME/bin:/opt
Mein /Users/User/.bash_profile scheint der Schuldige zu sein:
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*
Der Grund ist, wenn ich Heroku Toolbelt und die rvm-Pfade entferne (was Antworten waren, die von anderen Stapelüberlauffragen vorgeschlagen wurden), /usr/local/rvm/gems/Ruby-1.9.3-p194/bin
an erster Stelle stehen würde und das Problem behoben wurde. Ich weiß jedoch nicht, was ich mit dem Heroku Toolbelt anfangen soll. Sollte PATH=/usr/local/rvm/bin:$PATH
ohnehin nicht zuerst auf rvm setzen?
Ich muss eine triviale Lösung vermissen.
Zusätzliche Hinweise: $rvm --debug get head
enthält keine Installationshinweise mit Ausnahme der oben angegebenen Warnung.
Update: Durch Aufruf von rvm system
wird das Problem behoben, jedoch nur in der aktuellen Shell-Sitzung. $echo $PATH
produziert jetzt:
:/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:
Was ist eine dauerhafte Lösung?
Ich habe das gleiche problem mit rvm 1.25.26.
Ich habe ~/.bashrc
wie folgt geändert:
## 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
Die Warnung wird an der Funktion __rvm_path_match_gem_home_check () in $HOME/.rvm/scripts/functions/cli
ausgelöst.
Wenn der Anfang von $PATH
nicht mit $GEM_HOME/bin
beginnt, wird eine Warnmeldung angezeigt.
__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
}
In meinem Fall hatte Heroku meiner .bashrc Folgendes hinzugefügt:
### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"
Beachten Sie, wie es sich vor dem Pfad befindet. Alles, was ich tun musste, war es zu wechseln:
### Added by the Heroku Toolbelt
export PATH="$PATH:/usr/local/heroku/bin"
Und mein Problem wurde gelöst!
Wenn Sie kein Heroku haben, suchen Sie nach etwas anderem, das sich möglicherweise Ihrem Weg voranstellt. Wirklich, RVM will nur sicherstellen, dass es eine gute Chance hat, Ruby zu laden, bevor Edelsteine, die sich in den Pfad einschließen, geladen werden.
Die Lösung sollte laufen
$rvm install Ruby-head
$rvm use Ruby-head
mit einem optionalen $rvm docs generate-ti
Ich habe auf meinem System eine veraltete Version von Ruby verwendet und diese auf die aktuelle Version aktualisiert.
Durchsuchen Sie Ihre Konfigurationsdateien nach:
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
Ersetzen Sie diese Zeile durch:
export PATH="$HOME/.rvm/bin:$PATH" # Add RVM to PATH for scripting
Um sicherzustellen, dass der RVM-Code am Anfang Ihres $ PATH steht. Stellen Sie außerdem sicher, dass sich kein anderer Code am Anfang von $ PATH befindet.
Da ich die Ubuntu-Version von rvm verwendete, musste ich dies in mein .profile einfügen:
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
Recht. Ich würde diese Antwort verdoppeln, da ich stundenlang ohne Erfolg recherchierte. Ich hoffe, dass dies jemandem etwas Zeit erspart.
Mein Problem war, dass 2 Ruby-Köpfe installiert waren und anscheinend war auch die Ruby-Version ein Problem.
➜ 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
In diesem Fall (bei allen oben genannten Lösungen, this und this ), wenn Sie meinen Standardwert auf Ruby-head [ x86_64 ]
setzen und das Terminal neu starten, wird Warning!
UND meine aktuelle Ruby-Version beibehalten, wie im obigen Snippet gezeigt.
Um das zu beheben:
rvm remove Ruby-1.8.7-head
Wenn ich jetzt das Terminal neu starte:
➜ 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
Es scheint, und am Ende von .bashrc müssen Sie sicherstellen, dass der Pfad des Rvm am Anfang von $PATH