【Rails】インストール時につまづきがちなエラー集

【Rails】インストール時につまづきがちなエラー集

Railsのセットアップでハマり、無駄に時間がかかってしまうとモチベーションもダダ下がりです。
(少なくともぼくがそうです…)

そこでこの記事では、エラーとその対処法を紹介します。
もしかしたら今困っている最中のエラーも紹介しているかもしれません。

Bundle install実行時にMysqlインストールでエラー

“`sh
Fetching mysql2 0.4.10
Installing mysql2 0.4.10 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/Users/yuhiisk/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/mysql2-0.4.10/ext/mysql2
/Users/yuhiisk/.rbenv/versions/2.5.0/bin/ruby -r
./siteconf20180327-38437-1omr160.rb extconf.rb
–with-opt-lib=/usr/local/opt/openssl/lib
–with-opt-include=-I/usr/local/opt/openssl/include –local
checking for rb_absint_size()… yes
checking for rb_absint_singlebit_p()… yes
checking for ruby/thread.h… yes
checking for rb_thread_call_without_gvl() in ruby/thread.h… yes
checking for rb_thread_blocking_region()… no
checking for rb_wait_for_single_fd()… yes
checking for rb_hash_dup()… yes
checking for rb_intern3()… yes
checking for rb_big_cmp()… yes
checking for mysql_query() in -lmysqlclient… no
—–
mysql client is missing. You may need to ‘brew install mysql’ or ‘port install
mysql’, and try again.
—–
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.

Provided configuration options:
–with-opt-dir
–without-opt-dir
–with-opt-include=${opt-dir}/include
–with-opt-lib=${opt-dir}/lib
–with-make-prog
–without-make-prog
–srcdir=.
–curdir
–ruby=/Users/yuhiisk/.rbenv/versions/2.5.0/bin/$(RUBY_BASE_NAME)
–with-mysql-dir
–without-mysql-dir
–with-mysql-include
–without-mysql-include=${mysql-dir}/include
–with-mysql-lib
–without-mysql-lib=${mysql-dir}/lib
–with-mysql-config
–without-mysql-config
–with-mysql-dir
–without-mysql-dir
–with-mysql-include
–without-mysql-include=${mysql-dir}/include
–with-mysql-lib
–without-mysql-lib=${mysql-dir}/lib
–with-mysqlclientlib
–without-mysqlclientlib

To see why this extension failed to compile, please check the mkmf.log which can
be found here:

/Users/yuhiisk/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/mysql2-0.4.10/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in
/Users/yuhiisk/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/mysql2-0.4.10 for
inspection.
Results logged to
/Users/yuhiisk/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/mysql2-0.4.10/gem_make.out

An error occurred while installing mysql2 (0.4.10), and Bundler cannot
continue.
Make sure that `gem install mysql2 -v ‘0.4.10’` succeeds before bundling.

In Gemfile:
mysql2
“`

mysqlがインストールされていないときに出るエラーなので、mysqlをインストールしましょう。

“`sh
$ brew install mysql
“`

rmagickインストール時にエラー

“`sh
Installing rmagick 2.16.0 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/Users/yuhiisk/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/rmagick-2.16.0/ext/RMagick
/Users/yuhiisk/.rbenv/versions/2.5.0/bin/ruby -r
./siteconf20180327-39028-1asircf.rb extconf.rb
checking for clang… yes
checking for Magick-config… no
checking for pkg-config… yes
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc’
to the PKG_CONFIG_PATH environment variable
No package ‘MagickCore’ found
checking for outdated ImageMagick version (<= 6.4.9)… *** extconf.rb failed
***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.

Provided configuration options:
–with-opt-dir
–without-opt-dir
–with-opt-include
–without-opt-include=${opt-dir}/include
–with-opt-lib
–without-opt-lib=${opt-dir}/lib
–with-make-prog
–without-make-prog
–srcdir=.
–curdir
–ruby=/Users/yuhiisk/.rbenv/versions/2.5.0/bin/$(RUBY_BASE_NAME)

To see why this extension failed to compile, please check the mkmf.log which can
be found here:

/Users/yuhiisk/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/rmagick-2.16.0/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in
/Users/yuhiisk/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/rmagick-2.16.0 for
inspection.
Results logged to
/Users/yuhiisk/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/rmagick-2.16.0/gem_make.out

An error occurred while installing rmagick (2.16.0), and Bundler cannot
continue.
Make sure that `gem install rmagick -v ‘2.16.0’` succeeds before bundling.

In Gemfile:
rmagick
“`

rmagick(gem)をインストールするには、別途ImageMagickが必要です。
また、Rmagick v2.16.0は ImageMagick v7(記事執筆時の最新版) に対応していないので、v6をbrewで入れる必要があります。

“`sh
$ brew install imagemagick@6
“`

そして `.bash_rc` や `.bash_profile` などにPATHを追加します。

“`bash
export PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgconfig
“`

参考: https://qiita.com/niwasawa/items/1144f20a9f2de4b76977

ローカルサーバー起動後にMysqlエラー

“`sh
Mysql2::Error (Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)):
“`

この場合、mysqlサーバーは動いているでしょうか。
事前にmysqlサーバーを起動しなければいけません。

“`sh
$ mysql.server start
“`

データベースがないエラー

“`sh
Mysql2::Error: Unknown database ‘****’
“`

途中から参加するプロジェクトだったら、データベースの準備を行いましょう。

“`sh
$ rake db:create
$ rake db:migrate
“`

mysqlの場合はmigrateをするだけではダメで、はじめにデータベースを作成します。

参考: railsでデータベース作成&マイグレート(MySQL)

Webpackerでエラー

“`sh
Webpacker::Manifest::MissingEntryError in hogehoge

Showing /Users/yuhiisk/Work/sites/smout/app/views/layouts/application.html.slim where line #10 raised:
Webpacker can’t find application.js in /Users/yuhiisk/Work/sites/smout/public/packs/manifest.json. Possible causes:
1. You want to set webpacker.yml value of compile to true for your environment
unless you are using the `webpack -w` or the webpack-dev-server.
2. webpack has not yet re-run to reflect updates.
3. You have misconfigured Webpacker’s config/webpacker.yml file.
4. Your webpack configuration is not creating a manifest.
Your manifest contains:
{
}
“`

該当部分が以下の場合。

“`erb
= javascript_pack_tag ‘application’
“`

まず `yarn` で必要なライブラリをインストールしましょう。

“`sh
$ bin/yarn
“`

その後、`webpack` でJavaScriptをコンパイルを行います。

“`sh
$ bin/webpack
“`

もしくはJS配信用のdevサーバーを起動します。(自動でwatch&コンパイルされる)

“`sh
$ bin/webpack-dev-server
“`

五十川 洋平(Yohei Isokawa)

五十川 洋平(Yohei Isokawa)

フロントエンドエンジニア/面白法人カヤックなどのWeb制作会社に勤務したのち、故郷の新潟に戻り独立。JSフレームワークAngularやFirebase、Google Cloud Platformを使ったWebアプリ開発が得意。 また、Udemyのプログラミング解説の講師、writer.appの自主開発や上越TechMeetupの主催などを行っています。

プロフィール

©Copyright 2022 Yohei Isokawa All Rights Reserved.