私はgithubの指示に従ってrbenvをインストールしました。私はOSXを実行していますが、Ubuntu 12.04 VMでこれを試してみましたが、同じ結果が得られました。以下はRubyのバージョンを変更しようとしたときに端末に表示されるものです。
rbenv versions
* 1.9.3-p0 (set by /Users/user/.rbenv/version)
1.9.3-p125
rbenv global
1.9.3-p0
rbenv rehash
Ruby -v
Ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]
which Ruby
/usr/bin/Ruby
RbenvがRubyバージョンをそれがそうであると思っているように切り替えていない理由について誰かが何か考えがありますか?また、ローカルディレクトリに.rbenvファイルがないため、Rubyのバージョンがデフォルトの1.8.7になります。
rbenv local
rbenv: no local version configured for this directory
PATHに$ HOME/.rbenv/shimsと$ HOME/.rbenv/binが含まれていることを確認してください。
$ env | grep PATH
Bashを使用している場合は〜/ .bash_profileにzshを使用している場合は〜/ .zshenvがあることも確認してください。
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
注:これが〜/ .bash_profileの最後の設定であることを確認してください。私は自分の.bash_profileを更新してPATHをリセットするプログラムをインストールするという問題に遭遇しました。
これは古い質問かもしれませんが、Googleがここに私を導き、後世紀のために、私は共有すると思いました。
私の問題は上記の推奨される解決策の多くの後も続いた。 OPのように、私はrbenvをインストールしてからRubyバージョンをインストールしましたが、私のラップトップはデフォルトでシステムになっていました。私が見落としていたのは、私が走ったときだということです。
[~/.rbenv] $ rbenv versions
* system (set by /Users/alphadogg/.rbenv/version)
2.0.0-p247
そう、それはまだシステムにとってデフォルトでした。クイック
[~/.rbenv] $ rbenv local 2.0.0-p247
新しいバージョンに切り替えました。
私は〜/ .bash_profileに以下を追加することでこれを修正しました:
#PATH for rbenv
export PATH="$HOME/.rbenv/shims:$PATH"
これは https://github.com/sstephenson/rbenv に記載されているものです。
私が言えることから、@ rodowiの投稿で言及されている〜/ .rbenv/binディレクトリはありません。
最初のステップは、どのRubyが呼び出されているのかを調べることです。which Ruby
あなたのシステムは言う:/usr/bin/Ruby
これはrbenvが使っているシムではありません。(MacOSでは)次のようになります。/Users/<username>/.rbenv/shims/Ruby
シムは実際にはあなたが設定したRubyのバージョンへのリダイレクトのように振る舞うスクリプトです。rbenv global 1.9.3 rbenv local --unset rbenv Shell --unset
トラブルシューティングのために、プロジェクト固有の "ローカル"バージョンとシェル固有の "シェル"バージョンの設定を解除し、〜/のプレーンテキストファイルで決定される "グローバル"バージョン設定を使用してテストすることをお勧めします。あなたのケースではちょうどバージョン番号 "1.9.3"になるでしょう.rbenv/verion。プロジェクトフォルダ(ホームフォルダではない)のルートで "ls -laG"を実行して、 "。Rubyバージョン"ファイルが存在しないことを確認できます。
「rbenvのバージョン」を使用して、どのバージョンのrbenvを使用するように設定されているか(およびそれを設定しているファイルの場所と名前)を識別できます。
rbenv versions
問題のないもの:パスを正しく設定するまで。
あなたの* MacOSがあなたに従うことを確認するためにこれを使ってください:eval "$(rbenv init -)"
に続く:which Ruby
/Users//.rbenv/shims/Rubyのように見えるようにします。
その後、新しい端末ウィンドウを開くたびに実行されるように、プロファイルにその行を追加します。~/.bash_profile eval "$(rbenv init -)"
パスを変更する他の方法があります、rbenv initを実行する代わりにそれらのうちのどれでも代用して自由に感じる。
注:Railsを再インストールします。gem install Rails
もしあなたがRuby on Railsを実行しようとしているのなら、最初にこれらすべてを動かす必要があり、それからRails gemを再びインストールする必要があります。以前のRailsのインストールでは、間違ったRubyへのハードコーディングされたパスを使用しますが、他のいくつかのものは間違った場所にあるため、gemをもう一度インストールします。
P. S.あなたのMacOSがあなたに従わない場合(*上記)、あなたはあなたのパスを変更するための別の方法を見つける必要があるかもしれませんが、それは問題になることはほとんどないでしょう。
私はちょうどこれと同じ問題を見つけました。私がしたのはrbenvを(自作経由で)アンインストールしてから再インストールすることでした。私も追加しました
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
rbenvを再インストールしたときに〜/ .bash_profileに入りました。今完全に動作します。
私の場合は~/.zshenv
の変更はうまくいきませんでした。私は~/.zshrc
内で変更を加えなければなりませんでした。
私はちょうど加えました:
# Include rbenv for ZSH
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
~/.zshrc
の先頭で、シェルを再起動してログアウトしました。
うまくいったかどうか確認してください。
➜ ~ rbenv install 2.4.0
➜ ~ rbenv global 2.4.0
➜ ~ rbenv global
2.4.0
➜ ~ Ruby -v
Ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
このコマンドを実行
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
source ~/.bash_profile
これであなたの問題は解決します 参照
私は同じ問題を抱えていましたが、Homebrewによって引き起こされました:
[~]$ rbenv version
2.3.0 (set by /Users/user/.rbenv/version)
[~]$ Ruby -v
Ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]
[~]$ which Ruby
/usr/local/bin/Ruby
どういうわけか私もHomebrew経由でRubyをインストールしました、そしてHomebrewパスは私の$PATH
でrbenvパスより進んでいました。 brew uninstall Ruby
を実行すると、それは私のために修正されました。
rbenv help Shell
「シェルで 'RBENV_VERSION'環境変数を設定してシェル固有のRubyバージョンを設定します。このバージョンはロケール固有のバージョンとグローバルバージョンをオーバーライドします。rbenvに知られているRubyバージョンと一致する文字列でなければなりません。利用可能なRubyのバージョンの一覧については、「デフォルトのシステムRubyを使用してください。rbenvのバージョンを実行してください。」
Rbenvが正しくインストールされていれば、Ruby -vは以下に対応します。
rbenv Shell 1.9.3-p125
私は同じ問題に遭遇しました。 "Sudo"を付けて "rbenv global"コマンドを実行することでこれを修正しました。それはなんらかの許可の問題だと思います。
更新:ついに解決策を見つけました。私のMac上には "/usr/local/Cellar/rbenv/0.3.0/"の下に同じファイル "version"がありました。それは時折誤って作成されたと思います。あなたはそれを取り除くべきです。
私にとってrbenv
をzsh
と一緒に使う最も簡単な方法は.zshrc
configのpluginsセクションにrbenv
を追加することです。私の場合、それは以下のようになります。
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(Rails git textmate Ruby lighthouse)
# Add wisely, as too many plugins slow down Shell startup.
plugins=(git bower Rails Ruby rbenv gulp npm node nvm sublime)
それ以降はrbenv
を使ってRubyのバージョンをインストール、切り替え、使用する際に問題はありません。
変更を加えた後は端末セッションを再起動してください。
私がこれらの症状を抱えていたとき、問題は私が気付かずに私が切り替えようとしていた新しいRubyバージョンのために途中で失敗したことであることがわかった。修正はそれを削除して再インストールすることでした。
(これは、Ruby 1.9.3が利用可能なバージョンのrbenvリストに表示されていても、rbenvが想定していた場所に実行可能ファイルがないことを意味していました。あなたのパス、それが実際に置く場所に何もない場合、あなたのOSは喜んであなたのデフォルトのパスを探し続け、あなたのシステムのバージョンを探します。
これは私がrbenv
を再インストールした直後に起こりました。どうやら私のホームディレクトリに.Ruby-version
ファイルがあり、もう存在しないバージョンを指定しているようです。ファイルを削除したら、すべてうまくいきました。
魚用シェルユーザー
set --universal fish_user_paths $fish_user_paths ~/.rbenv/shims/
.bash_profile
の最後の行が次のようになっていることを確認してください。
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
実行します。
rbenv init
私がそれを実行した後、私が私のローカルrbenvバージョンを設定したとき:
rbenv local 2.4.0
それから私のRuby -v
と私のrbenv local
のバージョンは一致しました。
注:自分が入っているディレクトリを終了してから再びそこに戻ることもできます。私は物事をうまく動かすために必要だと気付きました。
奇妙なことに、rbenvのバージョンは、.rbenvファイルを設定していません。
chruby を使ってみることができますか? chrubyはシムに頼らず、代わりにPATH
、GEM_HOME
、GEM_PATH
を修正するだけです。
bashを使用している場合は、に進みます。
~/.bash_profile
そして次の行を追加します(まだそこにない場合)
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
Zshを使用している場合は、に進みます。
~/.zshrc
.zshrcファイルの末尾に、同じコード行を追加します。
それから端末を再起動してください。これで大丈夫です。