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

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

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

rbenvは、Rubyバージョン管理ツール。プロジェクトごとでRubyバージョンを切り替えることが可能です。RVMよりもシンプルで、少ない機能で動作します。本体にはRubyのビルド機能は備わっておらず、ruby-buildというツールを用いる必要があります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2580閲覧

bundle installができず、bundle execコマンドが使えない

mish0919

総合スコア6

rbenv

rbenvは、Rubyバージョン管理ツール。プロジェクトごとでRubyバージョンを切り替えることが可能です。RVMよりもシンプルで、少ない機能で動作します。本体にはRubyのビルド機能は備わっておらず、ruby-buildというツールを用いる必要があります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

2クリップ

投稿2019/09/02 12:14

編集2019/09/02 12:16

railsで開発をしている者です。
bundle install ができなくなったため、解決方法をご教示いただきたいです。

環境
Rails 5.1.1
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
rbenv 1.1.1

問題点と現状の共有
bundle exec コマンドが使えなくなったため(原因不明)、
bundle installをするよう促されたのですが、上手くいかず。

bundleは1.16.1でプロジェクトを進めているのですが、
bundle installとコマンドを打つと、下記のようなエラーが出ます。
画像は、問題点のありそうな箇所を抜粋しました。
イメージ説明
イメージ説明

rbenv exec gem list | grep bundler
とコマンドを打つと

bundler (1.16.1) capistrano-bundler (1.2.0)

となり、
bundle -vと打つと、
Bundler version 2.0.2
となります。

また、
which ruby とすると、
/ユーザー名/.rbenv/shims/ruby

which bundleとすると、
/usr/local/bin/bundle
となり、

調べてみると、この部分のパスの相違も問題なのかと思うのですが、
解決方法がわからず。

ちなみに、
sudo gem install bundler --version 1.16.1
とも試しましたが、解決には至りませんでした。

※rails s等のコマンドは使え、ローカルのサーバーは立ち上がります

簡単な解決方法があれば良いのですが、
もしなければ、一度開発環境をリセットするという手段も取れますので、
難しいようでしたら、そちらのアプローチをご教示いただけたらと存じます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

まずなによりも "rbenvで入れたRuby""brewかなにかで/usr/local/bin/に入ったRuby""元々システムに入っているRuby" と、そのどれを使いたいのか、どれを使っているのかということしっかり意識しましょう。


ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
rbenv 1.1.1

とのことですがこのrubyはどうやって入れましたか?
なぜあなたは"自分が2.4.1を使っている"と認識しているのですか?

which gemはどこを指していますか?


which ruby とすると、 /ユーザー名/.rbenv/shims/ruby が出て(/Users/ユーザー名/.rbenv/shims/ruby の間違いだと思いますが)
which bundle とすると、/usr/local/bin/bundle が出ることから、以下の可能性があります。

  1. パスの設定の順番で、rbenv環境が/usr/local/binより優先されていて、rubyコマンドはrbenv環境を見ているが、どういう理由でかrbenv環境からbundleが消えた、またはそもそも作っていない
  2. パスの設定の順番で、/usr/local/binがrbenv環境より優先されていて、bundleコマンドは/usr/local/binを見ているが、どういう理由でか/usr/local/binからrubyが消えた
  3. パスの設定の順番で、rbenv環境が/usr/local/binより優先されていて、/usr/local/binのRubyにbundlerを入れたが、rbenv環境にはbundlerを入れていない(したがって質問の状況は正常そうなって当然

echo $PATHを実行してパスの順番を確認してください。
想像では、rbenv環境→/usr/local/bin→/usr/binの順番になっている可能性の方が高いと思います。


実際問題として、"rbenvで入れたRuby"を使うのがいいと思います。


rbenv versionsしてみてください。

system 2.3.? (set by /Users/ユーザ名/.rbenv/version)

というようなリストが出ると思います。(?はマイナーバージョンの数字です)

先頭に*が付いているのはなんでしょうか? それはあなたが思っている実際に使おうと思っているRubyですか?

"rbenvで入れたRuby"と"rbenvで指定したRuby"の区別を付けてください。


system に*が付いているようなら

rbenv global 2.3.?

として"rbenvでいれたRuby"を優先するようにしましょう。


rbenv rehashしてみてください。

"rbenvで入れたRuby"にgemコマンドやbundleコマンドがあるなら/Users/ユーザー名/.rbenv/shimsに仲立ちする実行ファイルができてbundleコマンドがrbenvで指定したRubyを実行するようになります。


"rbenvで入れたRuby"にgemコマンドがあってbundleコマンドがないなら

gem install bundler

しましょう。


むやみに環境を変化させるコマンドを実行しないでください。
まず自分の環境を把握するところから始めてください。

投稿2019/09/03 00:24

編集2019/09/03 00:30
quickquip

総合スコア11029

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

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

mish0919

2019/09/03 03:35

ご丁寧にありがとうございます。 回答を確認する前に、自己解決しまして、 bundleのPATHを変更したため、解決いたしました。 今後、環境構築を実施する際は、 回答を意識して進めるようにいたします。 ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問