web-dev-qa-db-ja.com

macOS Sierraにmysql2 gemをインストールできません

新しいmacOS Sierra inで開発環境をセットアップしています。

まず、RbenvRuby(2.3.1)Homebrewをインストールしたため、MySQL(5.7 .15)

$ brew install mysql
$ mysql.server start

OK、MySQLが初期化されました。 mysql2 gem ...をインストールする時間.

$ gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.7.15/bin/mysql_config

しかし、うまくいきませんでした。 ????


Building native extensions with: '--with-mysql-config=/usr/local/Cellar/mysql/5.7.15/bin/mysql_config'
This could take a while...
ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

    current directory: /Users/macuser/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/mysql2-0.4.4/ext/mysql2
/Users/macuser/.rbenv/versions/2.3.1/bin/Ruby -r ./siteconf20160921-16853-x1boio.rb extconf.rb --with-mysql-config=/usr/local/Cellar/mysql/5.7.15/bin/mysql_config
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
-----
Using mysql_config at /usr/local/Cellar/mysql/5.7.15/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
-----
Dont 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/5.7.15/lib
-----
creating Makefile

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

  /Users/macuser/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.4/mkmf.log

current directory: /Users/macuser/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/mysql2-0.4.4/ext/mysql2
make "DESTDIR=" clean

current directory: /Users/macuser/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/mysql2-0.4.4/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/macuser/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/mysql2-0.4.4 for inspection.
Results logged to /Users/macuser/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.4/gem_make.out
44
Caio Tarifa

私はちょうど同じ問題を抱えていて、上記のすべての解決策を試した後、数時間キーボードに向かって頭を叩き始めました。

次に、Xcodeコマンドラインツールをインストール/再インストールしようと考えました:

xcode-select --install

Mysql2 gemは問題なくインストールされました。これでうまくいくことを願っています!

99
kylekeesling

Brew経由でopensslをインストールすると、次のメッセージが表示されます。

Appleは、独自のTLSおよび暗号ライブラリを支持して、OpenSSLの使用を廃止しました

通常、これによる影響はありません。独自のソフトウェアをビルドし、この式が必要な場合は、ビルド変数に追加する必要があります。

LDFLAGS:-L/usr/local/opt/openssl/lib
CPPFLAGS:-I/usr/local/opt/openssl/include
PKG_CONFIG_PATH:/ usr/local/opt/openssl/lib/pkgconfig

以下を実行して、これらのビルドフラグを設定できます(ローカルアプリケーション用)。

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"

これは私のために働いた。

詳細については、 バンドラーのドキュメント を参照してください。

57

他の回答が機能しなかったため、修正を共有するためにここにいます。

私の環境では、MySQL 5.6が必要なので、以下を使用する必要がありました。

brew install mysql56 の代わりに brew install mysql

Mysql2 gemをインストールするバンドルは、次の状態になるまで失敗し続けました。

brew link mysql56

その後も走りました:

mysql.server start

最後の手順は不要かもしれませんが、justの場合。

12
Stuart Hannig

たくさんのすばらしい答え、私はそれらをこれに結合することができました:

gem install mysql2 --source 'https://rubygems.org/' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include

私はbundle config

7
Yoav Epstein

だから私はこの同様の問題に遭遇し、私にとっては間違ったRubyバージョンと互換性のないMySQLバージョンであることが判明しました。私はほとんどの場合、Ruby 2.3 2.1プロジェクトを継承しましたが、2.1を使用するようにrvmに変更すると、もう少し先に進みました。

その後、私はこれを見つけました: https://github.com/brianmario/mysql2/issues/6 MySQLバージョン5.7で0.3.17よりも大きいmysql2 gemバージョンを使用する必要があると述べました

Gemを0.3.17に更新し、すぐに起動しました。これが誰かを助けることを願っています。

1
Paulissimo

Xcode-select --installをインストールしてみてください

1
Prem

@Caio Tarifaとほぼ同じシナリオ、Ruby 2.3.3、mysql 5.6およびmysql2。上記のソリューションをいくつか試し、最終的に@kylekeeslingのアプローチで動作するようにしました。

まず、@ spickermannによるソリューション1を試しました。

brew reinstall openssl && brew link openssl --force

何も起こらず、同じエラーが表示されます。

第二に、@ Alessandro Berardiによる解決策を試みました。

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"

これは、gem拡張機能の設定を上書きし、すべてのgem拡張機能のインストールが失敗したため、エラーは異なりますが、より多くのエラーが発生しました。

最後に、@ kylekeeslingソリューションを試してみました:

xcode-select --install

Nikogiriと同様にmysql gemの問題を修正します。すでにXcodeをインストールしているので、私の場合はXcodeコマンドラインツールを再インストールします。

1
B Liu

このような問題があります。これが役に立つことを願っています。

brew install [email protected]

brew link [email protected] --force

bundle install

これ 回答 助けて!

0
DongGE