0
0

More than 1 year has passed since last update.

Railsチュートリアルのサンプルをローカルに構築した際のエラーとの格闘と解決

Posted at

はじめに

プログラミング初学者の@kat_logと申します。

railsチュートリアル(第6版)のコードサンプルをGitHubからフォークして、ローカルに構築しようとした時に色々なエラーと格闘して、解決したためその流れを記録&共有です。
(README.mdを元に「第6版の11章を動かす」までの流れです。)

流れ

  1. 本リポジトリをクローンし、該当のディレクトリへ移動します。 →問題なく実行できました
  2. 必要なパッケージをインストールし、bundle install(本番環境でのみ必要なgemはスキップ)します。 →問題なく実行できました
  3. データベースを移行します。 →ここで躓きました😅

エラーとの戦い

ここから長い戦いとなりました💦

rake-12.3.3がありません😭

「3.データベースを移行します。」のrails db:migrateを実行すると、

Could not find rake-12.3.3 in any of the sources
Run `bundle install` to install missing gems.

というrake-12.3.3が見つからないというエラーが出ました。
なので、メッセージ内にある通りbundle installを実行しました。

非互換のrubyバージョンです😭

すると次は

ruby_dep-1.5.0 requires ruby version >= 2.2.5, ~> 2.2, which is incompatible with the current version,
ruby 3.0.1p64

というrubyのバージョンに関するエラーが出ました。

bundlergemのバージョンを合わせても変わらず

railsチュートリアルに

経験上、リスト 1.3で示すようにbundlergemのバージョンも揃えておくとよいことがわかっています。

とあるため、「bundlergemのバージョンが違うからかも」と思いrailsチュートリアル同様2.2.17に変えて(それまで2.2.15でした)bundle installを再度行うも、同じく

ruby_dep-1.5.0 requires ruby version >= 2.2.5, ~> 2.2, which is incompatible with the current version,
ruby 3.0.1p64

となりました。

(↓参考:特定のバージョンにてbundle installする方法があるようです)

ruby2系を入れてみる

rbenv versionsでローカルにインストールしているrubyを確認すると、3.0.1しか入っていなかったので、
rbenv install 2.7.3にて2系をインストールし、
rbenv global 2.7.3にて2.7.3を使うようにしました。

railsコマンドが見つかりません😭

再びbundle install実行すると、次は

rbenv: rails: command not found

The `rails' command exists in these Ruby versions:
  3.0.1

となりました。2.7.3の方にrailsが入っていないようです。

mimemagicエラー

ここで自分は、railsチュートリアルサンプルコードの例の「2.必要なパッケージをインストールし、bundle install(本番環境でのみ必要なgemはスキップ)します。」からもう一回やってみようと思い

$ yarn add jquery@3.4.1 bootstrap@3.4.1
$ bundle install --without production

を実行しました。すると元々出ていなかった

Installing mimemagic 0.3.10 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

An error occurred while installing mimemagic (0.3.10), and Bundler cannot continue.
Make sure that `gem install mimemagic -v '0.3.10' --source 'https://rubygems.org/'` succeeds before
bundling.

というエラーが発生しました💧

The rails' command exists in these Ruby versions:エラー解消できず😭

その後、一旦新たに発生したエラーは置いておいて、その前に発生していた
The rails' command exists in these Ruby versions:のエラー解消のため、

$ gem update --system
$ gem install bundler
$ gem install rails

を実行しました。
(↓参考)

実行後railsのインストールができたかrails --versionにて確認しましたが、次は

Could not find rails-6.0.3, bcrypt-3.1.13
〜 一部省略で記載しています 〜
Run `bundle install` to install missing gems.

といったエラーが発生しました💧

再度bundle installするも失敗

そこでエラーメッセージにある通り再度bundle installしました。
が、またも、、、

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
〜 一部省略で記載しています 〜
An error occurred while installing mimemagic (0.3.10), and Bundler cannot continue.

というエラーとなりました。
(↑上の方で$ bundle install --without productionした時に新たに発生したエラーがそのまま出ているようです)

shared-mime-infoをインストール

そこで、再度調べた情報を元に
brew install shared-mime-info
コマンドにて「shared-mime-info」をインストールし、再度
bundle installをしてみました

(↓参考)

No such file or directory発生

すると次は

/Users/xxxxxx/.rbenv/shims/bundle: line 21: /usr/local/Cellar/rbenv/1.1.2/libexec/rbenv: No such file or directory

ということでディレクトリが見つかりませんというエラーが発生しました💧

rbenv rehashで事態が前進💪

ということでさらに調べた結果、

rbenv rehash

を実行するとbundle installがうまく実行できるようになりました。
その結果、

$ rails --version
Rails 6.0.3

railsが入りました!

ちなみにrubyのバージョンを見ると

$ ruby -v

ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-darwin20]

ということで2系になっています

(↓参考)

Yarnのエラー

当初の目的通り、railsチュートリアルのrails db:migrateを実行すると

warning Integrity check: System parameters don't match                                               
error Integrity check failed                                                                         
error Found 1 errors.                                                                                


========================================
  Your Yarn packages are out of date!
  Please run `yarn install --check-files` to update.
========================================


To disable this check, please change `check_yarn_integrity`
to `false` in your webpacker config file (config/webpacker.yml).


yarn check v1.22.17
info Visit https://yarnpkg.com/en/docs/cli/check for documentation about this command.

ということでまたもエラーが発生しました💦

ようやく解決へ

こちらに関しては、

yarn install --check-files

を実行することでrails db:migrateが実行できるようになりました!

これだけだとCSSがうまく機能しないことがあるようで、その場合

yarn upgrade

も実行すると良いようです!

(↓参考)

これにてようやく解決し、

rails db:migrate

の実行、

rails test
rails db:seed
rails s

にてサーバー起動後http://localhost:3000/にアクセスしてサンプルを動かすことができました!

Screen Shot 2021-12-16 at 6.07.28.png

おわりに

お読みいただきありがとうございました。
この記事が誰かのお役に立てるかは微妙ですが、エラーとの戦いの記録として残しました😅
初学者の方々、一緒に頑張っていきましょう〜😄

0
0
0

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
  3. You can use dark theme
What you can do with signing up
0
0