質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.52%

bundleインストールでmysqlが通らない現象

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,973

okayamaken

score 6

以下の環境で開発をしておりました。

rails5
ruby5
mysql

rbenvのgemsetを新しく作り直したらbundleが通らなくなってしまいました。
原因としてはmysql2が通らないとのこと。

発生してるエラー

$ bundle
etching mysql2 0.4.10
Installing mysql2 0.4.10 with native extensions
Errno::EACCES: Permission denied @ rb_sysopen - /Users/user_name/app_name/vendor/bundle/ruby/2.5.0/gems/mysql2-0.4.10/CHANGELOG.md
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


gem install mysql2 -v '0.4.10' --source 'https://rubygems.org/'
Building native extensions. This could take a while...
ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

    current directory: /Users/user_name/.rbenv/versions/2.5.0/gemsets/2.5.0/gems/mysql2-0.4.10/ext/mysql2
/Users/user_name/.rbenv/versions/2.5.0/bin/ruby -r ./siteconf20181127-32843-1vyjcho.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/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
-----
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/Cellar/mysql/8.0.12/lib
-----
creating Makefile

current directory: /Users/user_name/.rbenv/versions/2.5.0/gemsets/2.5.0/gems/mysql2-0.4.10/ext/mysql2
make "DESTDIR=" clean

current directory: /Users/user_name/.rbenv/versions/2.5.0/gemsets/2.5.0/gems/mysql2-0.4.10/ext/mysql2
make "DESTDIR="
compiling client.c
compiling infile.c
compiling mysql2_ext.c
compiling result.c
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/user_name/.rbenv/versions/2.5.0/gemsets/2.5.0/gems/mysql2-0.4.10 for inspection.
Results logged to /Users/user_name/.rbenv/versions/2.5.0/gemsets/2.5.0/extensions/x86_64-darwin-18/2.5.0-static/mysql2-0.4.10/gem_make.out

mysql2のバージョンとかの問題だと思っているのですが、なかなか解決に繋がっておりません。
どなたかアドバイスいただけますと幸いです。

 追記

ご指摘をいただきopensslの再インストールを行い改めてbundle install

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/user_name/app_anem/vendor/bundle/ruby/2.5.0/gems/mysql2-0.4.10/ext/mysql2
/Users/user_name/.rbenv/versions/2.5.0/bin/ruby -r ./siteconf20181127-41841-k7bxey.rb extconf.rb --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include
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/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
-----
Setting rpath to /usr/local/Cellar/mysql/8.0.12/lib
-----
creating Makefile

current directory: /Users/user_name/app_name/vendor/bundle/ruby/2.5.0/gems/mysql2-0.4.10/ext/mysql2
make "DESTDIR=" clean

current directory: /Users/user_name/app_name/vendor/bundle/ruby/2.5.0/gems/mysql2-0.4.10/ext/mysql2
make "DESTDIR="
compiling client.c
compiling infile.c
compiling mysql2_ext.c
compiling result.c
compiling statement.c
linking shared-object mysql2/mysql2.bundle

current directory: /Users/user_name/app_name/vendor/bundle/ruby/2.5.0/gems/mysql2-0.4.10/ext/mysql2
make "DESTDIR=" install
make: /usr/local/bin/gmkdir: No such file or directory
make: *** [.sitearchdir.-.mysql2.time] Error 1

make install failed, exit code 2

Gem files will remain installed in /Users/user_name/app_name/vendor/bundle/ruby/2.5.0/gems/mysql2-0.4.10 for inspection.
Results logged to /Users/user_name/app_name/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/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.
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

 bundle に失敗する原因

Errno::EACCES: Permission denied @ rb_sysopen - /Users/user_name/app_name/vendor/bundle/ruby/2.5.0/gems/mysql2-0.4.10/CHANGELOG.md

パーミッション違反なので、上記パスに一般ユーザで開けるか所有ユーザを確認してください。

 gem installに失敗する原因

ld: library not found for -lssl

opensslの開発パッケージがインストールされていません。
yumなりaptなりでインストール後、再度インストールを試みてください。


 gmkdir

make: /usr/local/bin/gmkdir: No such file or directory

gmkdirはcoreutilsに含まれているようです。
brew install coreutilsで先に進むと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/27 13:08

    アクセス権の変更まではできたのですが、まだbundleが通らないですね、、、
    ご丁寧にありがとございます、、

    キャンセル

  • 2018/11/27 13:36

    ちょっと先へ進みましたね。
    内容追記しました。

    キャンセル

  • 2018/11/27 14:47

    ありがとうございます!おかげでbundleが通りました!
    エラーログをもっと細かく読み進めて行くことを心がけます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる