简体   繁体   English

无法在Mac上安装MySQL2 gem

[英]Fail to install MySQL2 gem on Mac

I'm trying to install mysql2 gem for rails applications but it gives me following error while running sudo gem install mysql2 我正在尝试为Rails应用程序安装mysql2 gem,但是在运行sudo gem install mysql2出现以下错误

ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

    current directory: /Users/ateeq/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.5/ext/mysql2
/Users/ateeq/.rbenv/versions/2.3.1/bin/ruby -r ./siteconf20161103-83594-10ft58j.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 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 errmsg.h... yes
checking for mysqld_error.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/5.7.16/lib
-----
creating Makefile

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

  /Users/ateeq/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.5/mkmf.log

current directory: /Users/ateeq/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.5/ext/mysql2
make "DESTDIR=" clean

current directory: /Users/ateeq/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.5/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/ateeq/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.5 for inspection.
Results logged to /Users/ateeq/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.5/gem_make.out

I installed rails via brew & rbenv. 我通过brew&rbenv安装了rails。 Versions are mentioned below: 版本如下:

Ruby Version: ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16] Ruby版本: ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16]

Rails Version: Rails 4.2.6 Rails版本: Rails 4.2.6

MySql Version: mysql-5.7.16 MySql版本: mysql-5.7.16

Pull up an instance of Terminal and run: 拉出Terminal的实例并运行:

brew doctor

It's likely that one or more dependencies for building the mysql gem are out of date. 建立mysql gem的一个或多个依赖关系可能已过时。

You'll have to run: 您必须运行:

brew update

You probably also upgraded to the Sierra release of OS X recently. 您可能最近也已升级到OS X的Sierra版本。 Make sure your XCode command line tools is up to date. 确保您的XCode命令行工具是最新的。 Run: 跑:

xcode-select --install

Make sure you accept the license for the new version of XCode by running: 确保通过运行以下命令接受新版本XCode的许可证:

sudo xcodebuild -license

Here is my solution for above error: 这是我针对上述错误的解决方案

I just uninstalled mysql by running brew remove mysql and then run following command to install mysql2 gem sudo gem install mysql2 . 我只是通过运行brew remove mysql卸载了brew remove mysql ,然后运行以下命令来安装mysql2 gem sudo gem install mysql2 It worked for me. 它为我工作。 After this, I reinstalled mysql by running brew install mysql . 之后,我通过运行brew install mysql重新brew install mysql

Ps I don't know about this behaviour. 附言:我不知道这种行为。 If anyone can explain, it'd be great. 如果有人可以解释,那就太好了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM