質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

3回答

3829閲覧

rbenvでインストールしたrubyのバージョンが切り替わりません(尚, rbenv version や rbenv local の内容は変わっております)

qaz3330

総合スコア113

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2017/05/27 15:57

編集2017/05/27 15:59

ローカル環境:
Mac の Sierra

次のエラー内容の通り、rbenvが切り替わりません。
設定上は問題ないようにも見受けられており、ネット上の記事を漁って調べているのですが、
解決の糸口が見つかりません。

どなたかご指摘いただけますと幸いです。
また、不足している部分がございましたら、追記させていただきます。

よろしくお願いいたします。

エラー内容

bundle install --path vendor/bundle Your Ruby version is 2.0.0, but your Gemfile specified 2.3.3

現状

rbenv周りの設定になります。
こちらを見る限りは、2.3.3に切り替わっているように見受けられます。

ruby -v ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]
rbenv local 2.3.3
rbenv version 2.3.3 (set by /Users/xxxx/xxxxx/.ruby-version)
rbenv versions system 2.0.0-p648 2.2.3 * 2.3.3 (set by /Users/xxxx/xxxxx/.ruby-version)
which ruby /Users/xxxx/.rbenv/shims/ruby

.zshrc

export RBENV_ROOT=/Users/xxxxx/.rbenv if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
ls ~/.rbenv/shims/ erb gem irb rake rdoc ri ruby testrb

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

こんにちは。
みなさんがコメントされている通り、.bash_profileあたり(パス関連?)のせいかなとも思いますが、可能性のひとつを添えてみます。

質問ぽくて申し訳ないのですが、コマンドライン(ターミナル)からではなく、RubyMineのようなideからbundle installを実行しようとしていますでしょうか。
その場合は、プロジェクト単位でrubyのバージョンを指定したりしますので、異なるバージョンのrubyに向いてたりするとうまく動きません。

投稿2017/05/28 07:16

suama

総合スコア1997

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

bundle installをしようとしているカレントディレクトリに.ruby-versionというファイルがありませんか?
そのファイルはプロジェクトで使用するrubyのバージョンを固定するものなのですが、
もしその中身が2.0.0であれば、

rbenv local 2.3.3

を実施し、プロジェクトでのrubyのバージョンを固定、もしくは.ruby-versionを削除してglobalのrubyを使うようにすれば解決します。

投稿2017/05/28 02:28

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qaz3330

2017/05/28 02:31

ご回答ありがとうございます。 .ruby-versionは2.3.3になっております。 globalのrubyは現状systemですが、こちらを2.3.3にすれば解決するのですが、 複数のプロジェクトをもっているため、いずれ、2.3.3以外のプロジェクトで同様の問題が起こりうると考えておりますため、できれば、この問題を解決したいと考えております。
退会済みユーザー

退会済みユーザー

2017/05/28 03:19 編集

なるほど。では、 ``` gem environment ``` を実施してEXECUTABLE DIRECTORYのパスを確認してみてください。 もしかしたらシステムのEXECUTABLE DIRECTORYを参照しているかもしれません。
qaz3330

2017/05/28 03:34

度々恐縮です。 - RUBY EXECUTABLE: /usr/local/var/rbenv/versions/2.3.3/bin/ruby - EXECUTABLE DIRECTORY: /usr/local/var/rbenv/versions/2.3.3/bin 結果はこちらですが、2.3.3を参照しているように見受けられます。
退会済みユーザー

退会済みユーザー

2017/05/28 04:31

うーむ。そちらも問題なさそうですね。。 では ``` echo $PATH ``` を実行して見てください。 /usr/local/binが本来実行したいbundlerのpathよりも前に設定されているのでしたら、zshrcの設定に問題があると考えられます。 なぜならPATHは先頭にある方が優先されるためです。 これでだめでしたらちょっとお手上げですね。。
qaz3330

2017/05/28 06:51

パスを見ました。 /usr/local/bin:/usr/local/var/rbenv/shims:/usr/bin:/bin:/usr/sbin: これはrbenvのほうが後ろにあるためおかしいということですよね?
qaz3330

2017/05/28 06:54

位置関係からいうと export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" export RBENV_ROOT=/usr/local/var/rbenv/ となっております。 これを逆にすると、PATHの中にrbenvが反映されなくなりおかしくなります
退会済みユーザー

退会済みユーザー

2017/05/28 07:13

おぉなるほど、それが原因くさそうですね。 qaz3330さんが使いたいbundlerは/usr/local/var/rbenv/shimsにあるはずが、PATHの優先度的に /usr/local/binのbundlerが使われてしまっているということですね。 RBENV_ROOTをあえて設定している理由はなんでしょうか? 理由がなければ設定しないほうがよろしいかと。 zshrcに export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" のような記述が最初からあるのでしょうか? であれば、 export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" #export RBENV_ROOT=/usr/local/var/rbenv/ ← 削除 export PATH="/usr/local/var/rbenv/shims:$PATH" # 追加 とするとよろしいかと。
qaz3330

2017/05/28 09:04

ありがとうございます。 結論から申しまして解決しました。 ご指摘頂いたやり方で行っても依然として、/usr/local/bin だけが先に読み込まれておりました。 その為、/usr/local/binだけに絞ってファイルを調べていると、 何に使っているものなのか把握できておらず大変恐縮ですが、以下の設定がおこなわれておりました。 path=(~/bin(N-/) /usr/local/bin(N-/) ${path}) こちらをコメントアウトすることによって解決致しました。 ご指摘の通り、PATHの読み込み順かつ、私の設定ファイルの不備によるものでした、 長くおつきあい頂きましてありがとうございました。
qaz3330

2017/05/28 09:06

path=(~/bin(N-/) /usr/local/bin(N-/) ${path}) これを本当にコメントアウトしてよかったものか若干心配ではありますが、 現状、rbenvの切り替えはうまくいっております。 PATHについての理解が深まったことが大きな収穫でした。 本当にありがとうございます。
guest

0

その環境にはもう一つv2.0.0のrubyがあってそっちのbundleを使っているってやつですよきっと。

ググったら同じような事書いている記事あったのでそれ紹介しときますね。
http://qiita.com/white_aspara25/items/d5e19b82be17048d9215

投稿2017/05/27 17:12

oskbt

総合スコア1895

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qaz3330

2017/05/27 17:23

ご回答ありがとうございます。 頂いた内容をもとに、試してみました。 $ which bundle /usr/local/bin/bundle $ rbenv exec gem install bundler $ which bundle /usr/local/bin/bundle bundlerを入れた前後でパスは変わらず、bundle install できません
qaz3330

2017/05/27 17:24

$ rbenv rehash # 忘れずに! も実行済みです。
qaz3330

2017/05/27 17:25

尚、 $ rbenv exec gem install bundler 実行におきまして、 .rbenv配下だとうまく行かなかったため mv ~/.rbenv/* /usr/local/var/rbenv/ としております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問