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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

5658閲覧

「bundle exec bundle install」時にエラーが出て「bundle install」だとエラーが出ない現象について

dongw

総合スコア119

Ruby

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

Ruby on Rails

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

0グッド

1クリップ

投稿2017/03/08 12:51

実行コマンド

bundle init bundle install --path vendor/bundle bundle exec rails new . -d mysql

Gemfile修正後

bundle exec bundle install

をすると、

Could not find gem 'bcrypt (~> 3.1.7)' in any of the gem sources listed in your Gemfile.

というエラーが出てインストールが行われませんでした。

bundle execが要らないのかと思い

bundle install

のコマンドを叩くとGemが正常にインストールされました。

この場合bundle exec bundle installというコマンドが悪かったのでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

bundle execコマンドはそのGemfileで指定された環境を使用します。
bundle exec について勉強してみてください。
参考

投稿2017/03/09 01:04

tqkqt0

総合スコア155

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

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

dongw

2017/03/09 11:24

回答ありがとうございます。 bundle execコマンドについて調べたのですが、bundle execのあとにbundleコマンドはそもそも使えない、という認識でいいでしょうか? 「budle exec bundle install」で検索したらこれでコマンドを打っている記事なども見つけたのですが、これはどういうことなのでしょうか?
tqkqt0

2017/03/09 11:57

Bundle exec はそもそもそのプロジェクトのGemfileを参照してね。ということです。 端末に複数のバージョンのGemがあればどのバージョンを使用するか分からないからです。つまりbundlerのコマンドです。 Bundle installはすでにその意味が含まれていて、Gemfile.lock(インストールされてるGemのリスト)、 Gemfileの順で参照し整合性を保ちます。 今回のエラーはgemfile.lockに指定されたバージョンがyank(サーバーなら削除)されてるというエラーです。bundle updateで対象gemをアップデートすればなおるとおもいますよ。
dongw

2017/03/09 18:54

詳しいコメントありがとうございます。勉強になります。 bundle installにbundle execの意味が含まれているのにbundle execを付けてるのは無意味だったんですね。 今回のケースのエラーだとbundle exec なしでbundle installしたらエラーは解決(インストールされた)のですが、どういう理由でこうなったのでしょうか? もし分かればお聞きしたいです。
tqkqt0

2017/03/09 22:52

環境がわからないため正確には分かりませんが、gemfilelockを参照しようとするbundle installに対しgemfileをみるbundle exec指示したため、ズレが生じてエラーになったのかな? 一度影響範囲のgemfile.lockとgemfileを見てみてはいかがでしょうか? 今回のエラーは既コメントで説明した通りです。 下記に詳しく書いてありました。http://saj-kz.hatenablog.com/entry/2014/04/21/005845
dongw

2017/03/13 03:00

大変勉強になりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問