Railsがインストールできないのは Mojaveのせい
Rails5.2.2.1をインストールしようとしたらエラーが出る。
[追記あり:mysql2のbundle installもできないのもMojaveのせい]
なんかところどころnokogiriのgemがよろしくないって言っているようだけれど、、、
調べてみるとMacOSをMojaveに変えたら不具合が出たという先輩が多いようで、自分も今更Mojaveの影響が出たのか…
このサイトを参考にしました。
http://rui-phone.hatenablog.com/entry/2018/12/02/232244
次のコマンドを順番に実行します。
$ xcode-select --install $ sudo open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
原因はMojaveのアップデートにたいするXcodeのアップデートで不足があったから。エラー文の中でもそんな部分がありました。
※ここの部分
checking if the C compiler accepts -I /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... *** extconf.rb failed ***
なんかSDKのheaderファイルが不足して、なんかの実行に失敗している的な意味合いだと。
なのでXcodeを改めてインストールして、不足しているファイルを入手するのである。
おかげさまで、この手順を完了したらRailsのインストールも無事できました。ありがとうございました。
<参考サイト>
● Mojaveにしたら問題が
http://rui-phone.hatenablog.com/entry/2018/12/02/232244
● MojaveにアプデしたらCのヘッダーファイルが読み込まれなくなった件
http://kane-please.hatenablog.com/entry/2018/11/07/001823
[追記:mysql2のbundle installもできないのもMojaveのせい]
gitcloneでダウンロードしてきたアプリケーションを開こうとしたらbundle install できないでやんの。
$ bundle install
(略)
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/masuikeishi/exp_role_playing1/vendor/bundle/gems/mysql2-0.4.10/ext/mysql2 /Users/masuikeishi/.rbenv/versions/2.5.1/bin/ruby -I /Users/masuikeishi/.rbenv/versions/2.5.1/lib/ruby/site_ruby/2.5.0 -r ./siteconf20190728-96507-898jlc.rb extconf.rb 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 ----- Using mysql_config at /usr/local/opt/mysql@5.6/bin/mysql_config ----- checking for mysql.h... yes checking for errmsg.h... yes checking for SSL_MODE_DISABLED in mysql.h... no checking for MYSQL_OPT_SSL_ENFORCE in mysql.h... no 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 ----- Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load ----- ----- Setting libpath to /usr/local/opt/mysql@5.6/lib ----- creating Makefile current directory: /Users/masuikeishi/exp_role_playing1/vendor/bundle/gems/mysql2-0.4.10/ext/mysql2 make "DESTDIR=" clean current directory: /Users/masuikeishi/exp_role_playing1/vendor/bundle/gems/mysql2-0.4.10/ext/mysql2 make "DESTDIR=" compiling client.c compiling infile.c compiling mysql2_ext.c compiling result.c result.c:326:40: warning: incompatible pointer types assigning to 'my_bool *' (aka 'char *') from 'bool *' [-Wincompatible-pointer-types] wrapper->result_buffers[i].is_null = &wrapper->is_null[i]; ^ ~~~~~~~~~~~~~~~~~~~~ result.c:328:40: warning: incompatible pointer types assigning to 'my_bool *' (aka 'char *') from 'bool *' [-Wincompatible-pointer-types] wrapper->result_buffers[i].error = &wrapper->error[i]; ^ ~~~~~~~~~~~~~~~~~~ 2 warnings generated. compiling statement.c linking shared-object mysql2/mysql2.bundle ld: library not found for -lssl clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [mysql2.bundle] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/masuikeishi/exp_role_playing1/vendor/bundle/gems/mysql2-0.4.10 for inspection. Results logged to /Users/masuikeishi/exp_role_playing1/vendor/bundle/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' --source 'https://rubygems.org/'` succeeds before bundling. In Gemfile: mysql2
これも調べてみるとMojaveにUpgradeしたからコマンドラインツールの不具合が起きているとのこと。
参考サイトにあったコマンドを入力して、必要なパッケージファイルを作るということをします。
次のコマンドを実行します。
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
これで一発でbundle install 成功しました。ありがたや〜ありがたや〜!
<参考サイト>
https://qiita.com/gonzaemon111/items/ea181ba3ff582a124213