1. ホーム
  2. ruby-on-rails

[解決済み] bundle exec rake を使うか、それとも rake だけか?

2023-05-04 02:02:06

質問

Railsの勉強はrakeコマンドだけを使って、以下のように行いました。 rake db:migrate を使うべきだと書いてありました。 bundle exec rake ... の代わりに rake . 今、私はどちらを使うべきか混乱しています。

を使うべきでしょうか? bundle exec rake ではなく、単に rake なのか、それとも単に好みの問題なのでしょうか?何かご意見があれば、ぜひお聞かせください。ありがとうございます。

どのように解決するのですか?

bundle exec は、バンドル内のコンテキストでコマンドを実行します。

つまり、Gemfile で指定された gems を使用します。多くの場合 bundle exec rake foo を実行した場合と同じ結果になります。 rake foo を実行したのと同じ結果になります。特に、Gemfile にあるのと同じ gems がシステム全体にインストールされている場合はそうなります。しかし、アプリケーションによっては、システム全体にインストールされているものと異なるバージョンのgemsを指定し、正しく実行できるように正確なgemsとバージョンを必要とすることがあります。もし、単に bundle exec を付けずに実行すると、奇妙なエラーが発生することがあります。

使用している bundle exec を使うと、gemfile で指定された環境でプログラムが実行されることが保証されます。これは、プログラムの作成者が実行されることを望んでいる環境であることを期待しており、あなたのコンピュータにどんな奇妙な設定があっても正しく実行されることを期待しています。

これは基本的に、プログラムが実行される環境を標準化するものです。これは、バージョン地獄を避けるのに役立ち、人生をずっと楽にしてくれます。

参照 http://bundler.io/v1.3/man/bundle-exec.1.html をご覧ください。