LoginSignup
8

More than 3 years have passed since last update.

posted at

【Railsチュートリアル】Herokuにpushする時、Failed to install gems via Bundler.のエラーが表示される

事象

RailsチュートリアルでHerokuへpushすると、Failed to install gems via Bundler.というエラーが表示され、push出来ない。

スクリーンショット 2019-09-14 15.26.19.png
スクリーンショット 2019-09-14 15.23.05.png

原因

pushする前にbundle installを実行していなかったため。

対応

bundle installを実行後、必要なGemがインストールされpush出来る。
スクリーンショット 2019-09-14 15.57.49.png

スクリーンショット 2019-09-14 15.59.54.png

なぜbundle installが必要か
bundle installはそのアプリに必要なGemをインストールするため。
bundle installは以下の役割をする。

  • Gemfileに書かれたGemをインストールする。
  • インストールしたGemに加え、依存関係にあるGemとGemごとのバージョンをGemfile.lockに記載する。

なぜGemfile.lockが必要なのか
複数人で開発する際に、インストールするGemとバージョンを揃えるため。

  • Gemfile...そのアプリに必要なGemが記載されたファイル
  • Gemfile.lock...Gemfileに記載されたGemに加え、依存関係にあるGemとバージョンが記載されたファイル

Gemは他のGemと結びついていることが多いため、依存関係にあるGemもインストールする必要がある。
bundle installを実行すると依存関係にあるGemを自動でインストールしてくれる。

インストールしたGemとそのバージョンをGemfile.lockに記載することで、他の開発者はbundle installするとGemfile.lockに記載された指定されたバージョンのGemをインストールできる。

参考記事

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
8