前提・実現したいこと
railsファイルのgemfileで指定したmysql2-0.5.3をインストールしたい。
エラーの原因や解決策があればご教授いただきたいです。
###機種
Macbook M1
発生している問題・エラーメッセージ
エラーメッセージ Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. current directory: /Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2 /Users/ユーザ名/.rbenv/versions/3.0.0/bin/ruby -I /Users/ ユーザ名 /.rbenv/versions/3.0.0/lib/ruby/3.0.0 -r ./siteconf20210706-95195-q61zek.rb extconf.rb checking for rb_absint_size()... no checking for rb_absint_singlebit_p()... no checking for rb_wait_for_single_fd()... no ----- Using mysql_config at /opt/homebrew/bin/mysql_config ----- checking for mysql.h... yes checking for errmsg.h... yes checking for SSL_MODE_DISABLED in mysql.h... yes checking for SSL_MODE_PREFERRED in mysql.h... yes checking for SSL_MODE_REQUIRED in mysql.h... yes checking for SSL_MODE_VERIFY_CA in mysql.h... yes checking for SSL_MODE_VERIFY_IDENTITY in mysql.h... yes checking for MYSQL.net.vio in mysql.h... yes checking for MYSQL.net.pvio in mysql.h... no checking for MYSQL_ENABLE_CLEARTEXT_PLUGIN in mysql.h... yes checking for SERVER_QUERY_NO_GOOD_INDEX_USED in mysql.h... yes checking for SERVER_QUERY_NO_INDEX_USED in mysql.h... yes checking for SERVER_QUERY_WAS_SLOW in mysql.h... yes checking for MYSQL_OPTION_MULTI_STATEMENTS_ON in mysql.h... yes checking for MYSQL_OPTION_MULTI_STATEMENTS_OFF in mysql.h... yes checking for my_bool in mysql.h... no ----- Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load ----- ----- Setting libpath to /opt/homebrew/Cellar/mysql/8.0.25_1/lib ----- creating Makefile current directory: /Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2 make "DESTDIR=" clean current directory: /Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2 make "DESTDIR=" compiling client.c In file included from client.c:13: ./wait_for_single_fd.h:32:10: error: implicit declaration of function 'rb_thread_select' is invalid in C99 [-Werror,-Wimplicit-function-declaration] return rb_thread_select(fd + 1, rfds, wfds, efds, tvp); ^ client.c:787:14: warning: incompatible function pointer types passing 'VALUE (void *)' (aka 'unsigned long (void *)') to parameter of type 'VALUE (*)(VALUE)' (aka 'unsigned long (*)(unsigned long)') [-Wincompatible-function-pointer-types] rb_rescue2(do_send_query, (VALUE)&args, disconnect_and_raise, self, rb_eException, (VALUE)0); ^~~~~~~~~~~~~ /Users/ユーザ名/.rbenv/versions/3.0.0/include/ruby-3.0.0/ruby/internal/iterator.h:51:25: note: passing argument to parameter here VALUE rb_rescue2(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE,VALUE),VALUE,...); ^ client.c:795:16: warning: incompatible function pointer types passing 'VALUE (void *)' (aka 'unsigned long (void *)') to parameter of type 'VALUE (*)(VALUE)' (aka 'unsigned long (*)(unsigned long)') [-Wincompatible-function-pointer-types] rb_rescue2(do_query, (VALUE)&async_args, disconnect_and_raise, self, rb_eException, (VALUE)0); ^~~~~~~~ /Users/ユーザ名/.rbenv/versions/3.0.0/include/ruby-3.0.0/ruby/internal/iterator.h:51:25: note: passing argument to parameter here VALUE rb_rescue2(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE,VALUE),VALUE,...); ^ 2 warnings and 1 error generated. make: *** [client.o] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3 for inspection. Results logged to /Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/extensions/arm64-darwin-20/3.0.0/mysql2-0.5.3/gem_make.out
該当のソースコード
ruby on rails
試したこと
1つ目
$ brew info openssl
$ bundle config --local build.mysql2 "--with-cppflags=-I/usr/local/opt/openssl@1.1/include"
$ bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl@1.1/lib"
$ bundle
2つ目
gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'
(こちらを実行すると上記と同様のエラーが出ます。)
###1つ目を試して出るエラー
Installing mysql2 0.5.3 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory:
/Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2
/Users/ユーザ名/.rbenv/versions/3.0.0/bin/ruby -I
/Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/3.0.0 -r
./siteconf20210706-95490-fem4hz.rb extconf.rb
--with-opt-lib=/usr/local/opt/openssl/lib
--with-opt-include=-I/usr/local/opt/openssl/include
checking for rb_absint_size()... no
checking for rb_absint_singlebit_p()... no
checking for rb_wait_for_single_fd()... no
Using mysql_config at /opt/homebrew/bin/mysql_config
checking for mysql.h... yes
checking for errmsg.h... yes
checking for SSL_MODE_DISABLED in mysql.h... yes
checking for SSL_MODE_PREFERRED in mysql.h... yes
checking for SSL_MODE_REQUIRED in mysql.h... yes
checking for SSL_MODE_VERIFY_CA in mysql.h... yes
checking for SSL_MODE_VERIFY_IDENTITY in mysql.h... yes
checking for MYSQL.net.vio in mysql.h... yes
checking for MYSQL.net.pvio in mysql.h... no
checking for MYSQL_ENABLE_CLEARTEXT_PLUGIN in mysql.h... yes
checking for SERVER_QUERY_NO_GOOD_INDEX_USED in mysql.h... yes
checking for SERVER_QUERY_NO_INDEX_USED in mysql.h... yes
checking for SERVER_QUERY_WAS_SLOW in mysql.h... yes
checking for MYSQL_OPTION_MULTI_STATEMENTS_ON in mysql.h... yes
checking for MYSQL_OPTION_MULTI_STATEMENTS_OFF in mysql.h... yes
checking for my_bool in mysql.h... no
Don't know how to set rpath on your system, if MySQL libraries are not in path
mysql2 may not load
Setting libpath to /opt/homebrew/Cellar/mysql/8.0.25_1/lib
creating Makefile
current directory:
/Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2
make "DESTDIR=" clean
current directory:
/Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2
make "DESTDIR="
compiling client.c
In file included from client.c:13:
./wait_for_single_fd.h:32:10: error: implicit declaration of function
'rb_thread_select' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
return rb_thread_select(fd + 1, rfds, wfds, efds, tvp);
client.c:787:14: warning: incompatible function pointer types passing 'VALUE
(void )' (aka 'unsigned long (void )') to parameter of type 'VALUE ()(VALUE)'
(aka 'unsigned long ()(unsigned long)') [-Wincompatible-function-pointer-types]
rb_rescue2(do_send_query, (VALUE)&args, disconnect_and_raise, self,
rb_eException, (VALUE)0);
/Users/ユーザ名/.rbenv/versions/3.0.0/include/ruby-3.0.0/ruby/internal/iterator.h:51:25:
note: passing argument to parameter here
VALUE rb_rescue2(VALUE()(VALUE),VALUE,VALUE()(VALUE,VALUE),VALUE,...);
client.c:795:16: warning: incompatible function pointer types passing 'VALUE
(void )' (aka 'unsigned long (void )') to parameter of type 'VALUE ()(VALUE)'
(aka 'unsigned long ()(unsigned long)') [-Wincompatible-function-pointer-types]
rb_rescue2(do_query, (VALUE)&async_args, disconnect_and_raise, self,
rb_eException, (VALUE)0);
/Users/ユーザ名/.rbenv/versions/3.0.0/include/ruby-3.0.0/ruby/internal/iterator.h:51:25:
note: passing argument to parameter here
VALUE rb_rescue2(VALUE()(VALUE),VALUE,VALUE()(VALUE,VALUE),VALUE,...);
2 warnings and 1 error generated.
make: *** [client.o] Error 1
make failed, exit code 2
Gem files will remain installed in
/Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3
for inspection.
Results logged to
/Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/extensions/arm64-darwin-20/3.0.0/mysql2-0.5.3/gem_make.out
An error occurred while installing mysql2 (0.5.3), and Bundler cannot
continue.
Make sure that gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'
succeeds before bundling.
In Gemfile:
mysql2
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。