###やりたいこと
下記サイトを見ながら、EC2でrailsアプリを起動しようとしています。
(デプロイ編②)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで
その中でアプリケーションのDBがMySQLという前提で記述されていたため、EC2の中でrailsのDBをsqlite3からMySQLに変更しようと試みました。
###やったこと
まず下記サイトを参照してEC2でMySQL5.7の設定を行いました。
AWSのEC2で行うAmazon Linux2(MySQL5.7)環境構築
次に【Rails入門】mysqlとの接続方法まとめでDBをsqlite3からMySQLに変更するにはgem 'mysql2'が必要と書いてあったので
gemファイルに
gem 'mysql2', '~> 0.5.3'
を追加後にbundle installをするとエラーが発生してしまいます。
###エラーメッセージ
Gem::Ext::BuildError:
1 2current directory: 3/home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/ext/mysql2 4/home/tsuyoshi/.rbenv/versions/2.6.1/bin/ruby -I 5/home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0 -r 6./siteconf20200311-29416-xnyz7n.rb extconf.rb 7--with-cppflags\=-I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include 8checking for rb_absint_size()... *** extconf.rb failed *** 9Could not create Makefile due to some reason, probably lack of necessary 10libraries and/or headers. Check the mkmf.log file for more details. You may 11need configuration options. 12 13Provided configuration options: 14 --with-opt-dir 15 --without-opt-dir 16 --with-opt-include 17 --without-opt-include=${opt-dir}/include 18 --with-opt-lib 19 --without-opt-lib=${opt-dir}/lib 20 --with-make-prog 21 --without-make-prog 22 --srcdir=. 23 --curdir 24 --ruby=/home/tsuyoshi/.rbenv/versions/2.6.1/bin/$(RUBY_BASE_NAME) 25/home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:467:in `try_do': The 26compiler failed to generate an executable file. (RuntimeError) 27You have to install development tools first. 28from /home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:552:in 29`try_link0' 30from /home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:570:in 31`try_link' 32from /home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:782:in 33`try_func' 34from /home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:1069:in `block 35in have_func' 36from /home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:959:in `block 37in checking_for' 38from /home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:361:in `block 39(2 levels) in postpone' 40 from /home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:331:in `open' 41from /home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:361:in `block 42in postpone' 43 from /home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:331:in `open' 44from /home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:357:in 45`postpone' 46from /home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:958:in 47`checking_for' 48from /home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/2.6.0/mkmf.rb:1068:in 49`have_func' 50 from extconf.rb:25:in `<main>' 51 52To see why this extension failed to compile, please check the mkmf.log which can 53be found here: 54 55/home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0/mysql2-0.5.3/mkmf.log 56 57extconf failed, exit code 1 58 59Gem files will remain installed in 60/home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3 for 61inspection. 62Results logged to 63/home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0/mysql2-0.5.3/gem_make.out 64 65An error occurred while installing mysql2 (0.5.3), and Bundler cannot 66continue. 67Make sure that `gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'` 68succeeds before bundling.
###/home/tsuyoshi/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0/mysql2-0.5.3/mkmf.logの中身
gcc: error: unrecognized command line option '-Wduplicated-cond' gcc: error: unrecognized command line option '-Wmisleading-indentation' gcc: error: unrecognized command line option '-Wrestrict' gcc: error: unrecognized command line option '-Wimplicit-fallthrough=0'
###その後試したこと
下記サイトを参照していろいろ試したのですがうまくいきませんでした。
ご教授お願いいたします。
参照サイト
An error occurred while installing mysql2 (0.4.10)
ruby-filemagic -v 0.6.1 Gem::Ext::BuildError: ERROR: Failed to build gem native extension. の解決方法
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。