337

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がルビーバージョンを思ったように切り替えない理由について誰かが何か考えを持っていますか?また、ローカルディレクトリに.rbenvファイルがないため、rubyのバージョンがデフォルトで1.8.7になります。

rbenv local
rbenv: no local version configured for this directory
4

27 に答える 27

660

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をリセットするプログラムをインストールしたときに問題が発生しました。

最後に、フォルダ内で作成した場合に誤って作成した可能性$HOMEのあるファイルがフォルダに含まれていないことを確認してください。実行するとファイルが変更され、フォルダ内にファイルが存在すると、で設定されたバージョンが上書きされます。.ruby-version$ rbenv local <ruby-version>$HOME$ rbenv global <ruby-version>$HOME/.rbenv/version.ruby-version$HOME$HOME/.rbenv/version

ドキュメントから:

Rubyバージョンの選択shimを実行すると、rbenvは、次のソースからこの順序で読み取ることにより、使用するRubyバージョンを決定します。

指定されている場合、RBENV_VERSION環境変数。rbenvシェルコマンドを使用して、現在のシェルセッションでこの環境変数を設定できます。

実行しているスクリプトのディレクトリと、ファイルシステムのルートに到達するまでその各親ディレクトリを検索して見つかった最初の.ruby-versionファイル。

ファイルシステムのルートに到達するまで、現在の作業ディレクトリとその各親ディレクトリを検索して見つかった最初の.ruby-versionファイル。rbenv localコマンドを使用して、現在の作業ディレクトリにある.ruby-versionファイルを変更できます。

グローバル〜/ .rbenv/versionファイル。このファイルは、rbenvグローバルコマンドを使用して変更できます。グローバルバージョンファイルが存在しない場合、rbenvは、「システム」Rubyを使用することを想定しています。つまり、rbenvがパスにない場合に実行されるバージョンは何でもかまいません。

于 2012-08-27T22:40:21.840 に答える
135

私はこれを私のものに以下を追加することによって修正しました~/.bash_profile

#PATH for rbenv
export PATH="$HOME/.rbenv/shims:$PATH"

これはhttps://github.com/sstephenson/rbenvに記載されているものです。

私が知る限り、@rodowiによる投稿で言及されたディレクトリはありません。 ~/.rbenv/bin

于 2013-04-25T13:57:36.317 に答える
93

これは古い質問かもしれませんが、Googleが私をここに導き、後世のために、私が共有したいと思いました。

上記の推奨される解決策の多くを実行した後も、私の問題は解決しませんでした。OPと同様に、rbenvをインストールしてからrubyバージョンをインストールしましたが、ラップトップはデフォルトでシステムに設定されていました。私が見落としていたのは、私が走ったときのことでした。

[~/.rbenv] $ rbenv versions
* system (set by /Users/alphadogg/.rbenv/version)
  2.0.0-p247

IOW、それはまだシステムにデフォルト設定されていました。クイック

[~/.rbenv] $ rbenv local 2.0.0-p247

新しいバージョンに切り替えました。

于 2013-07-15T23:41:26.460 に答える
64

最初のステップは、どのルビーが呼び出されているかを調べることです。

$ which ruby

あなたのシステムは言う:

/usr/bin/ruby

これは、rbenvで使用されるシムではありません。(MacOSでは)次のようになります。

/Users/<username>/.rbenv/shims/ruby

シムは実際には、設定したバージョンのルビーへのリダイレクトのように機能するスクリプトです。

トラブルシューティングのために、プロジェクト固有の「ローカル」バージョンとシェル固有の「シェル」バージョンの設定を解除し、〜/ .rbenv/versionのプレーンテキストファイルで決定された「グローバル」バージョン設定を使用してテストすることをお勧めします。あなたの場合はバージョン番号「1.9.3」になります。

$ rbenv global 1.9.3
$ rbenv local --unset
$ rbenv shell --unset

ls -laGプロジェクトフォルダ(ホームフォルダではなく)のルートで、「。ruby-version」ファイルが存在しないことを確認できます。

使用するrbenv versionsように設定されているバージョンrbenv(およびそれを設定しているファイルの場所と名前)を識別するために使用できます。

$ rbenv versions

パスを正しく設定するまで、それは重要ではありません。

これを使用して、*MacOSがあなたに従うことを確認します。

$ rbenv init -

に続く:

$ which ruby

次のように表示されます。

/Users/<username>/.rbenv/shims/ruby

次に、これを実行して行をプロファイルに追加し、新しいターミナルウィンドウを開くたびに実行されるようにします。

$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

パスを変更する方法は他にもあります。rbenvinitを実行する代わりに、それらのいずれかを自由に置き換えてください。

注:次のコマンドでRailsを再インストールします。

$ gem install rails

Ruby on Railsを実行しようとした場合は、最初にこれをすべて機能させてから、railsgemを再度インストールする必要があります。Railsの以前のインストールでは、間違ったルビーへのハードコードされたパスが使用され、他のいくつかのものが間違った場所に配置されるため、gemを再度インストールするだけです。

PS MacOSがあなたに従わない場合(*上記)、パスを変更する別の方法を見つける必要があるかもしれませんが、「Macは正常に機能する」ため、問題になる可能性はほとんどありません;)

于 2016-08-31T00:29:47.123 に答える
28

私はちょうどこれと同じ問題を見つけました。私がしたことは、rbenvを(homebrew経由で)アンインストールして再インストールすることでした。私も追加しました

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

rbenvを再インストールしたときに〜/.bash_profileに。今は完璧に動作します。

于 2012-08-18T18:47:39.730 に答える
27

私の場合、変更は~/.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]
于 2017-02-02T12:55:12.400 に答える
17

このコマンドを実行します

rbenvをbashに追加して、ターミナルを開くたびに読み込まれるようにします

echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
source ~/.bash_profile

これで問題が解決しますリファレンス

于 2016-08-31T06:26:51.080 に答える
10

MacBook ProCatalinaOSおよびMacBookProBig Surでrbenvを使用してRubyをセットアップするときに、この問題が発生しました。

これが私が修正した方法です

まず、以下のコマンドを実行してrbenvを初期化します。

rbenv init

これにより、何をすべきかについての指示が得られます。基本的に、ファイルを開いて~/.zshrcこれをファイルに追加する必要がありますeval "$(rbenv init -)"。これは、以下のコマンドを実行することで実行できます。

echo 'eval "$(rbenv init -)"' >> ~/.zshrc

次に、以下のコマンドを実行して、rubyのバージョンを設定します。

rbenv local your-desired-ruby-version

私の場合、希望するルビーバージョンは3.0.1だったので、次のようになりました。

rbenv local 3.0.1

完了したら、Command + Qを使用してターミナルを終了し、新しいターミナルを開きます。今回は、コマンドを実行します。

ruby -v 
rbenv versions

希望のルビーバージョンがすでに設定されていることがわかります。

それで全部です。

これがお役に立てば幸いです

于 2021-06-24T22:38:57.130 に答える
8

bashを使用している場合は、

~/.bash_profile

次の行を追加します(まだない場合)

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

Zshを使用している場合は、

~/.zshrc

.zshrcファイルの最後に同じコード行を追加します。

次に、端末を再起動するだけで、問題がないはずです。

于 2019-02-16T18:38:39.053 に答える
6

rbenv help shell

"シェルで'RBENV_VERSION'環境変数を設定することにより、シェル固有のRubyバージョンを設定します。このバージョンは、ローカルアプリケーション固有のバージョンとグローバルバージョンをオーバーライドします。rbenvに認識されているRubyバージョンと一致する文字列である必要があります。特別バージョン文字列'システム'デフォルトのシステムRubyを使用します。使用可能なRubyバージョンのリストについては、'rbenvバージョンを実行してください。 "

rbenvが正しくインストールされていれば、ruby-vはに対応します

rbenv shell 1.9.3-p125

于 2014-01-26T13:41:53.853 に答える
5

私は同じ問題を抱えていましたが、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パスは私ののrbenvパスの前にありました$PATH。実行brew uninstall rubyすると修正されました。

于 2017-01-15T12:22:07.463 に答える
5

フィッシュシェルユーザー向け

set --universal fish_user_paths $fish_user_paths ~/.rbenv/shims/
于 2017-01-21T00:27:43.467 に答える
5

走る:

rbenv init

それを実行した後、ローカルのrbenvバージョンを設定すると:

rbenv local 2.4.0

それから私のバージョンruby -vと私のrbenv localバージョンは一致しました。

注:現在のディレクトリを終了してからそこに戻ることもできます。これは、動作させるために必要であることに気づきました。

于 2017-08-29T23:52:12.360 に答える
4

私の場合、rbenv一緒に使用する最も簡単な方法は、 configのプラグインセクションにzsh追加することです。私の場合、次のようになります。rbenv.zshrc

# 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

変更を加えた後、ターミナルセッションを再開してください。

于 2016-01-07T15:03:41.963 に答える
3

私も同じ問題に直面しました。rbenv globalを使用してコマンドを実行することにより、これを修正しましたsudo。許可の問題だったと思います。

更新:私はついに解決策を見つけました。私のMacには同じファイル「バージョン」が1つあり、それはの下にあり/usr/local/Cellar/rbenv/0.3.0/ます。たまに間違えて作ったと思います。削除する必要があります。

于 2012-07-29T11:17:05.567 に答える
3

これらの症状が発生したとき、問題は、私が気付かないうちに、切り替えようとしていた新しいRubyバージョンのインストールが途中で失敗したことであることが判明しました。修正は、それを削除して再インストールすることでした。

(これは、ruby 1.9.3が使用可能なバージョンのrbenvリストに表示されていても、rbenvが想定したパスに実行可能ファイルがないことを意味します。rbenvは場所を追加するだけでrubyバージョンを変更しようとするため、パス、先頭に追加する場所に実際に何もない場合、OSはデフォルトのパスを検索し続け、私の場合は質問の1.8.7のようにシステムバージョンを見つけます。)

于 2012-11-02T11:46:59.650 に答える
3

.bash_profile最後の行が次のとおりであることを確認してください。

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
于 2017-04-30T05:37:20.050 に答える
3

受け入れられた回答は、以下を追加することを提案しています。

export PATH="$HOME/.rbenv/bin:$PATH"

これは、OPが参照するMacOSXでは機能しません。brew install rbenv実際、 Mac OSXでは実際に唯一のインストール方法であるを介してrbenvをインストールするcurl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bashと、OSXでは失敗するため、rbenv実行可能ファイルは次の場所にインストールされます。

$ which rbenv
/usr/local/bin/rbenv

ただし、OSXでも、rbenvルートは$HOMEディレクトリに残ります。

~ viggy$ rbenv root
/Users/viggy/.rbenv

これは何を意味するのでしょうか?これは、rubiesをインストールすると、.rbenvの下の指定されたホームディレクトリにインストールされることを意味します。

$ rbenv install 2.6.0
$ ls ~/.rbenv/versions
2.6.0

これで、brewインストールは、Linuxで手動で実行する必要があるいくつかの作業を実行しました。たとえば、Linuxでは、プラグインとしてruby-buildを手動でインストールする必要があります。

$ mkdir -p "$(rvbenv root)/plugins"
$ git clone https://github.com/rbenv/ruby-build.git "(rbenv root)"/plugins/ruby-build

これは、自作のインストールですでに行われています。Linuxのインストールと同様に、自作のインストールで実行する必要のある重要な手順が1つあります。パスにrbenvシムを追加する必要があります。これを行うには、シェルの起動時に、次のコマンドを評価する必要があります(これにより、rbenvシムが$ PATHの先頭に追加されます)。

$ vim ~/.bash_profile
eval "$(rbenv init -)"
$ source ~/.bash_profile

を実行echo $PATHすると、rbenvシムが表示されます。

$ echo $PATH
/Users/viggy/.rbenv/shims:

次に、rubyのバージョンを確認すると、インストールされているrbenvrubyが反映されます。

ruby -v
ruby 2.6.0p0 
于 2020-03-26T02:40:53.150 に答える
2

これは、再インストールした直後に発生しましたrbenv。どうやら.ruby-version、ホームディレクトリに、存在しなくなったバージョンを指定するファイルがあったようです。ファイルを削除すると、すべてが機能しました。

于 2013-12-14T01:19:32.373 に答える
1

うまくいく誤解を招く答えがたくさんあります。rbenvREADMEの手順について言及する価値があると思いました。

  1. $ brew install rbenv
  2. $ rbenv init そしてそれがあなたに与える指示に従ってください。これは私が得たものです:
~ $ rbenv init
# Load rbenv automatically by appending
# the following to ~/.bash_profile:

eval "$(rbenv init -)"

更新しました~/.bash_profile...

  1. ターミナルを閉じて、もう一度開きます
  2. 次のコマンドを実行して、正しく機能していることを確認します。
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
  1. 次に、次の手順を実行して、必要なバージョンをインストールします。rbenv install <version>
于 2020-12-26T21:46:15.143 に答える
1

Linux / Ubuntuユーザーステップ1:

$ rbenv versions
  system
  2.6.0
* 2.7.0 (set by /home/User/Documents/sample-app/.ruby-version) #Yours will be different
  2.7.2

ステップ2:

$ nano /home/User/Documents/sample-app/.ruby-version

ステップ3:

$ ruby -v
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
于 2020-12-31T10:12:02.137 に答える
0

不思議なことに、rbenvバージョンは.rbenvファイルを設定しませんでした。

次の項目を確認してください:ls -ltra->arbenvが書き込まれたことを確認します。

于 2012-06-21T20:35:24.173 に答える
0

あなたはchrubyを使ってみることができますか?chrubyはシムに依存せず、代わりに、、を変更するPATHだけGEM_HOMEですGEM_PATH

于 2012-11-21T07:03:22.630 に答える
0

rbenvをインストールする前にrvmを削除するのを忘れました。rvmを削除してrbenvを再インストールしましたが、システムはまだrbenvによってグローバルとして指定されているバージョンのRubyを使用していませんでした。ターミナルをシャットダウンしようとしましたが、マシン全体を再起動して初めて機能しました。

于 2014-03-03T06:37:46.960 に答える
0

ここにある他のすべての回答は、さまざまな状況に対して適切なアドバイスを提供しますが、より簡単な方法があります。

rbenv docsは、システム上のこれらすべての潜在的な落とし穴をすばやく検証するrbenv-doctor診断ツールを示しています。

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

すべてが順調に進むと、次のように表示されます。

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash                                     <aws:hd-pmp-developer>
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20201005)
Counting installed Ruby versions: 1 versions
Checking RubyGems settings: OK
Auditing installed plugins: OK

さて、これらの期待の1つを破った場合(たとえば、rbenv-installを削除した場合)、ツールは問題を直接指摘し、それを修正する方法へのリンクを示します。

$ mv /usr/local/bin/rbenv-install rbenv-install-GONE
                                                                      
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash                                     
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: OK

===> Checking `rbenv install' support: not found <===
  Unless you plan to add Ruby versions manually, you should install ruby-build.
  Please refer to https://github.com/rbenv/ruby-build#installation

Counting installed Ruby versions: 1 versions
Checking RubyGems settings: OK
Auditing installed plugins: OK
于 2020-11-06T19:42:27.060 に答える
0

Macの.bash_profileにeval"$(rbenv init-)"を追加すると、この問題が解決しました。rbenv localruby-vがセットを与えました

于 2021-03-29T18:05:51.460 に答える
-2

rbenvを使用しないことをお勧めします。いくつかの問題があります。

  1. rubyをインストールすると、バンドルバージョンは付属しません
  2. ほとんどの場合、バンドルインストールの実行中にバンドラーバージョンのピックアップの問題が発生します

これだけの労力を削減するために、rvmを使用して、作業を楽にすることをお勧めします。このリンクをたどってrvmをインストールしますhttps://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b

于 2021-12-16T13:44:50.157 に答える