web-dev-qa-db-ja.com

RVM警告! PATHが正しく設定されていません

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:

永続的な修正とは何ですか?

27
Johnz133

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
}
55
utwang

私の場合、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=.

15
Matthew Cullum

解決策は実行することでした

$rvm install Ruby-head
$rvm use Ruby-head

オプションの$rvm docs generate-ti

私のシステムでは、古いバージョンのRubyを使用していたので、現在のバージョンに更新して修正しました。

5
Johnz133

構成ファイルを検索してください:

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の先頭に自分自身を置かないようにしてください。

4
Mirror318

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
3
Karen

正しい。調査に何時間も費やしたが、成功しなかったため、この回答をダンプしています。これにより誰かが時間を節約できることを願っています。

私の問題は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
0
marco

.bashrcの最後のように、rvmパスが$PATHの先頭にあることを保証する必要があります

0
allenfantasy