「警告!PATHが正しく設定されていません」とrvm use 2.0.0 --defaultを実行する場合


115

上記は最初は機能せず、2回目は機能します。

新しいシェルウィンドウのルビバージョンを2.0.0に設定してみてください。

している

$ rvm use 2.0.0 --default

与える

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

次に同じことをします

$ rvm use 2.0.0 --default

エラーは発生しません、つまり

$ rvm use 2.0.0 --default
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247
durrantm.../durrantm$ 

しかし、新しいウィンドウはまだ2.0.0ではなくruby 1.9.3を私に与えています

私の.bashrcファイルはそれにあります:

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "/home/durrantm/.rvm/scripts/rvm" ]] && . "/home/durrantm/.rvm/scripts/rvm"

私の.bash_profileには:

source ~/.profile
case $- in *i*) . ~/.bashrc;; esac

やってみる

rvm get stable

動作しているように見えますが、多くの緑の出力の最後に表示されます:

Could not update RVM, get some help at #rvm IRC channel at freenode servers.

新しいターミナルウィンドウにrvm list rubiesは次のように表示されます。

$ 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

回答:


176

でrvmをアンインストールした後、行き詰まりました

rvm implode

次に、rvmを再インストールした後、同じエラーメッセージが表示されました。wayne seguinのgitハブページを確認した後。彼は自分のページにツールをリストしており、

rvm reset 

インストール後。これでエラーメッセージが修正されました。PATHの編集は必要ありません。


13
私のチェック&再チェックした後~/.bashrc~/.bash_profile実行中のrvm get stable --auto-dotfiles再チェック、~/.bashrc~/.bash_profile、と~/.profile何度も...この答えは最終的にそれを固定!Ran:rvm reset警告を取り除きました!(私見... RVMはパスの最初にいることにあまりにも細心の注意を払っています...私がパスの最初に何か他のものを設定した場合、私は自分のやっていることを知っています)
TrinitronX

11
:tu:rvm reset
JBird 2015

18
これは私のために働いた!PATHの編集は必要ありませんrvm reset(メッセージが最後に1つ表示されます)ので、rvmコマンドを発行するたびに、PATHの警告は表示されなくなりました。
JohnRDOrazio

1
rvm resetを使用すると、rvm resetを実行した端末の問題が解決します。ただし、新しいターミナルに移動すると、rvm resetを再度実行しない限り、エラー/警告が残ります
Apurva Mayank

rvm help以下のためのリターンはかなり怖いヒントrvm resetすべてのデフォルトおよびシステム設定を削除 😄
MuhamedHuseinbašić

171

答えはこれを置くことでした:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 
# Load RVM into a shell session *as a function*

**。bashrcファイルの** BOTTOM **(最後の行-重要!)私はそれを.bash_profileファイルに入れました(私はUbuntuを使用しています)。


1
RVMをチェーンのトップに置きたい場合、直感に反してボトムに移動すると思われますか?
reneruiz 2014

9
。[ba | z] shrcにパスを再定義する他の行がある場合は、rvmをファイルの一番下に置く必要があります。 export PATH="/usr/local/bin:/usr/local/sbin:$PATH"Homebrewは、おそらくrvmと競合する一般的なものです。
TimeEmit 2014年

4
パスを数回再定義したので、.bash_profileの一番下に配置しました。これもうまくいきました。
Kyle Suss 14年

1
ターミナルを再起動した後、これは私にとってうまくいきました
NSTJ

24
これは間違いなく正しい解決策ですが、実行するだけでrvm reset自動的にこれが実行されます...
Ralph Callaway '26

34

多分これを解決する最善の方法ではありませんが、.zshrcのボタンにこの行を追加しました(.bashrcでも動作します!)

export PATH="$GEM_HOME/bin:$PATH"

これは、RVMが更新されたよりクリーンなIMOソリューションです。
Dan L

私は同意しません、これがこれを解決する最良の方法だと思います:)これは.bash_profileの最後の行として、最後に実行され、その中に他のパス宣言があるため、これを配置する必要がありました。
applejack42

これは本当にこの問題を解決するための最良の解決策の1つです。ほぼ3時間を費やし、ついにギブアップしようとしました:D男。:)

私は〜/ .profileに自分を追加しました。これは〜/ bash_profileの最後の行によってロードされ、他のファイルで$ PATHへの参照がないことを確認しました。このように、それはBashで動作し、他のシェルに拾われます。
Dmitri

はい。これは明確で、エクスポート先を指定するため、最適なソリューションです。ありがとう!!!
AlbertCatalà2016年

23

Michael Durrantの解決策を試しましたが、うまくいきませんでした。しかし私は走りましたrvm get stable --auto-dotfiles、そしてそれは望み通りに働き始めました。

それが役に立てば幸い


これはMavericksで機能し、修正を完了するにはターミナルを再起動する必要がありました。
Brett Bim

1
Mac 10.12.3でiTerm2 3.0.15、fish 2.5.0、およびファイルのrvm default一番下にありconfig.fishます。rvm reset端末ウィンドウを開いたままにしておくと、コマンドは役に立ちませんでした。このコマンドは機能しました。私の出力:pastebin.com/1jUCSGnP
Pysis

私は、コマンドを実行していたとき、ああ、おそらく、彼らが使用していたbash通訳をし、私はそれらの設定ファイルをチェックするだけでなく..ている必要があります
Pysis

いいえ、iTermを再起動した後でも、他のターミナルウィンドウではまだ壊れており、プロファイルスクリプトの数を確認しても問題が解決しなかったため、すべての構成行を削除してコンピューターを再起動し、fish機能統合でRVMを再インストールして、 1 rvm default行。それは今より良いです..
Pysis

8

これは、尋ねられた質問に対する回答ではなく、ほとんどのコメント作成者/応答者が尋ねた関連質問に対する回答です- ですシェルrcファイルの下部にrvm行を配置する必要があるのはなぜですか?

答えは簡単です。

  1. 読み込まれたRVMコードは、RVMのRubyバイナリディレクトリを $PATH、および
  2. .bashrc (またはデフォルトのシェルと同等)が読み取られ、1行ずつ上から下に解釈されます。

次のシナリオを想像してみてください。

$ 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

明らか、RVM行ののシェル初期化ファイル何かが存在し、$ PATHに変更を加えた場合、より具体的には、ディレクトリの先頭に$PATHが付いている場合、それらの変更により、rvmによって追加されたディレクトリが最初の位置から押し下げられます。RVMが呼び出されると、そのルビーバイナリディレクトリがBAMの最初にないことがわかります$PATH。警告が表示されます:)。

私はそれが物事を明確にすることを願っています。


6

私の経験を追加するだけです.bash_profile.bashrcを使用している場合は、が干渉していないかどうかを確認してください。キリング.bashrcによって単一バッシュ構成の賛成で.bash_profile、この場合、作品アウト。


1
これは私の問題を解決しました。すべての構成が.bash_profileにあるため、.bashrcがどのようにそこに到達したかさえわかりません。RVMはインストール時にbashrcに何かを入れますか?私は、bashrcに1行しかなく、rvmと関係があることを考慮して、そう仮定します。
ケビンデレオン2015

1
神はどんな種類のコマンドラインインストーラがそれを押し込んだか知っています。彼らはそれを汚染する傾向があります:(
Ain Tohvri

2
これは一般的な解決策ではありません、FWIW。.bashrc入れ子になった対話型シェルごとに実行されます。.bash_profile入力された最初のbashシェル、つまりログインシェルでのみ実行されます。変数は通常、で設定する必要がありますが.bash_profile、関数、エイリアスなど(通常の継承環境では送信されないもの)はで設定する必要があります.bashrc
バリーケリー

5

これについてフォローアップの質問があります(コメントを追加するだけでいいのですが、クレジットが足りません)。私はこれと同じ問題を抱えていました-を使用して提案されたrvmスクリプトを実行したときに--auto-dotfiles、シェルスクリプトが.bashrc_profileファイルを削除したため、問題が発生しました。

とにかく、私は最終的に上記の同じ答えに出くわし、この行を.bashrcファイルの最後に配置しました。 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

.bashrcファイルの真ん中の行ではなく、なぜそれが機能するのかを見つけましたか?UnixがRVMを1つのインスタンスで機能させ、別のインスタンスでは機能させない環境変数をロードする方法について、いくらか明確にしていますか?


いいえ、それはうまくいき、私は次に進みました:)揚げるのにもっと興味深い魚:)
Michael Durrant 2013

5

私は同じ問題に直面していました。私はそれを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

rvmの複数のエントリ。1つのエントリとその動作についてコメントしました。

#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

3

私の.zshrcのPATH =行から.rvmが含まれているすべてのものを削除しました

これで問題が解決しましたが、他の回答(rvmスクリプトを入手するか、自動ドットファイルで安定させる)では解決しませんでした。


2

このコマンドは非常に便利です。それは私のケースを解決します。だから誰かが同じ問題を抱えているなら、これを試してみてください: rvm get stable --auto-dotfiles


1

rvm install ruby-head 私のために問題を修正しました-少し時間がかかりましたがトリックをしました。それが私のbashファイルに予期せぬ更新を行ったかどうかはわかりません。


1

私は削除してしまった~/.profile~/.bashrc~/.zshrcました。

基本的に私だけが ~/.bash_profile私はMac使いました。そしてそれは機能します。

私の場合、次のようなものがあると思います。

export PATH = "$ PATH:$ HOME / .rvm / bin"
[[-s "$ HOME / .rvm / scripts / rvm"]] && source "$ HOME / .rvm / scripts / rvm"#RVMを*関数として*シェルセッションにロードします

これらのファイルで、それらの重複した設定が混乱している rvm


1

免責事項

Cuz私は主にpythonを使用して開発しているので、この回避策が正しいruby envを提供するか、単にパスを変更して警告を取り除くかはわかりません

バックグラウンド

私の場合、rvm最初にインストールし、次にインストールしましたpyenv。両方の設定が変更され$PATHます。警告から、rvmは常にパスの最初になりたいようです

$ echo $PATH

$HOME/.rvm/gems/ruby-2.6.3/bin: ......

しかし、あなたが追加した場合eval "$(pyenv init -)"の要求に応じてpyenv、それはあなたの変更されます、$PATHとの

$ echo $PATH

$HOME/.pyenv/shims:$HOME/.rvm/gems/ruby-2.6.3/bin: ......

私の回避策

$ rvm use system #システムルビーに戻す

$ rvm use ruby-2.6.3 #使用する必要があるバージョンに切り替えます

rvm パスが好きなようにパスを変更すると、迷惑な警告が再び表示されなくなります。


0

上位2つの重複する行にコメントし、それらを最下部に追加した後に機能しました。端末を機能させるには、端末を再起動することを忘れないでください。

#[[ -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/postgresql@9.6/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/postgresql@9.6/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

あなたは付け加えられます

rvm_silence_path_mismatch_check_flag=1

あなたの~/.rvmrcファイルに。これが警告メッセージが示唆するものです。


1
これは単にメッセージを無視し、修正するのではなく、ユーザーが求めていることです。さらに、新しいプロジェクトの場合、問題が再発します。
ma3x

@ ma3x実際には、OPは質問を述べずに問題を述べただけなので、警告メッセージを「無視」することは有効な提案です。また、新しいプロジェクトの部分がわかりません。
AkaZecik

1
彼がエラーを修正しようとしていることをコンテキストから明確に理解できる疑問符がない場合でも、それを非表示にしないでください:)さらに、警告メッセージが示唆するものの一部にすぎないため、答えは不完全です。最初は、最新の安定したRVMを取得してファイルをオートドットすることをお勧めします。新しい宝石セットを参照したかったので、私の間違いだった新しいプロジェクトについて。
ma3x

@ ma3x洞察に感謝します:)おそらく、推論の方法が異なるだけなのかもしれませんが、質問やその他の回答を読んだ後、OPはこの警告を取り除きたいという結論に達しました。これはエラーではなく、警告です。そして、PATH私に邪魔で、せいぜい保護的な音の中でパスの順序を強制するので、私はこの答えを投稿することにしました。私は私の答えを再考し、あなたのコメントに基づいてそれを改善するのに時間をかけます:)
AkaZecik

-3

私はこの問題を修正しました。このようなコマンドを使用してみてください:

rvm use 2.0.0-p353

行末に-p353またはその他のバージョン詳細を追加


6
これは現在のシェルセッションの問題を解決するだけなので、正確な答えではありません。
IIllIIll
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.