【问题标题】:Fail to install MySQL2 gem on Mac在 Mac 上安装 MySQL2 gem 失败
【发布时间】:2016-11-03 04:31:22
【问题描述】:

我正在尝试为 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

我通过 brew 和 rbenv 安装了 rails。版本如下:

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

Rails 版本:Rails 4.2.6

MySql 版本:mysql-5.7.16

【问题讨论】:

    标签: mysql ruby-on-rails macos ruby-on-rails-4 ruby-2.3


    【解决方案1】:

    拉起一个终端实例并运行:

    brew doctor
    

    用于构建 mysql gem 的一个或多个依赖项可能已过期。

    你必须跑:

    brew update
    

    您最近可能还升级到了 OS X 的 Sierra 版本。确保您的 XCode 命令行工具是最新的。运行:

    xcode-select --install
    

    通过运行确保您接受新版本 XCode 的许可:

    sudo xcodebuild -license
    

    【讨论】:

      【解决方案2】:

      这是我针对上述错误的解决方案

      我刚刚通过运行brew remove mysql 卸载了mysql,然后运行以下命令来安装mysql2 gem sudo gem install mysql2。它对我有用。在此之后,我通过运行brew install mysql 重新安装了 mysql。

      附:我不知道这种行为。如果有人能解释一下,那就太好了。

      【讨论】:

      • mysql2 gem 是 mysql c 驱动程序的包装器。
      猜你喜欢
      • 2011-12-03
      • 2011-05-06
      • 2011-11-16
      • 1970-01-01
      • 2015-11-29
      • 2012-05-21
      • 1970-01-01
      • 2013-10-26
      相关资源
      最近更新 更多