Macにrvmをインストールしましたが、グローバルコマンドでこの警告が表示されます
警告! PATHが適切に設定されていません。 '/ usr/local/rvm/gems/Ruby-1.9.3-p194/bin'は最初の場所にありません。通常、これはシェル初期化ファイルが原因です。'PATH=。で確認してください。 。 'エントリの場合、RVMをドットファイルに再度追加するのに役立つ場合があります:' rvm get stable --auto-dotfiles '、このシェルセッションの実行で一時的に修正するには:' rvm use Ruby-1.9.3-p194 '。
私の$ PATHSは警告を確認します:
$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:
提案されたように、最初にrvm get stable --auto-dotfiles
を試してみましたが、次にシェルの初期化ファイルをチェックしました。私の/.bash_profile:
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
export PATH=/usr/local/share/python:$PATH
PATH=$PATH:$HOME/bin:/opt
私の/Users/User/.bash_profileが犯人のようです:
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*
その理由は、Heroku Toolbeltとrvmパス(他のスタックオーバーフローの質問で提案された回答)を削除すると、/usr/local/rvm/gems/Ruby-1.9.3-p194/bin
が最初になり、問題が解決されるためです。ただし、Heroku Toolbeltをどうするかわかりません。さらに、PATH=/usr/local/rvm/bin:$PATH
は、とにかくrvmを最初に配置すべきではありませんか?
些細な解決策が欠けているに違いない。
追加のメモ:$rvm --debug get head
は、上記の警告を除き、これに関するインストールノートを作成しません。
更新:rvm system
を呼び出すと問題が修正されますが、現在のシェルセッションでのみです。 $echo $PATH
は以下を生成します:
:/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:
永続的な修正とは何ですか?
Rvm 1.25.26でも同じ問題が発生します。
~/.bashrc
を次のように変更しました。
## 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
警告は、$HOME/.rvm/scripts/functions/cli
の__rvm_path_match_gem_home_check()関数で発生します。
$PATH
の先頭が$GEM_HOME/bin
から始まらない場合、警告メッセージが表示されます。
__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
}
私の場合、Herokuは.bashrcに次を追加しました。
### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"
パスの先頭にどのように追加されているかに注目してください。私がしなければならなかったのは、それを次のように切り替えることだけでした。
### Added by the Heroku Toolbelt
export PATH="$PATH:/usr/local/heroku/bin"
そして、私の問題は解決されました!
Herokuをお持ちでない場合は、パスの先頭にある可能性のあるものを探してください。実際、RVMは、パスに含まれるgemがロードされる前に、Ruby=.
解決策は実行することでした
$rvm install Ruby-head
$rvm use Ruby-head
オプションの$rvm docs generate-ti
私のシステムでは、古いバージョンのRubyを使用していたので、現在のバージョンに更新して修正しました。
構成ファイルを検索してください:
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
その行を次のように置き換えます。
export PATH="$HOME/.rvm/bin:$PATH" # Add RVM to PATH for scripting
RVMコードが$ PATHの先頭にあることを確認します。また、他のコードが$ PATHの先頭に自分自身を置かないようにしてください。
Rvmのubuntuバージョンを使用していたため、これを.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
正しい。調査に何時間も費やしたが、成功しなかったため、この回答をダンプしています。これにより誰かが時間を節約できることを願っています。
私の問題は2つのRubyヘッドがインストールされていたことであり、明らかに、Rubyバージョンも問題でした。
➜ 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
この場合、(上記のすべてのソリューションを試して、 this および this )デフォルトをRuby-head [ x86_64 ]
に設定し、端末を再起動してWarning!
AND my current Ruby上記のスニペットが示すように、バージョンは持続していました。
それを修正するには:
rvm remove Ruby-1.8.7-head
さて、ターミナルを再起動すると:
➜ 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
.bashrcの最後のように、rvmパスが$PATH
の先頭にあることを保証する必要があります