在 macOS Sierra 上安装 mysql2 gem 出错
阅读更多:MySQL 教程
问题描述
在安装 mysql2 gem 时,执行 gem install mysql2 命令时,可能会遇到以下错误:
Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
current directory: /Users/user/.rvm/gems/ruby-2.5.1/gems/mysql2-0.4.10/ext/mysql2
/Users/user/.rvm/rubies/ruby-2.5.1/bin/ruby -r ./siteconf20180703-80872-yhauc4.rb extconf.rb
checking for rb_absint_size()... yes
checking for rb_absint_singlebit_p()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
...
它表明无法在当前环境下安装 mysql2 gem。
原因分析
这个错误的原因是因为 macOS Sierra 系统默认不安装 MySQL 客户端库,在编译执行 mysql2 gem 时,会无法找到 MySQL 客户端库。
解决方法
有多种解决方法,下面简述常用的两种:
安装 MySQL 客户端
在 macOS Sierra 上,可以通过 Homebrew 命令安装 MySQL 客户端:
$ brew install mysql
安装完成后,重新安装 mysql2 gem 即可:
$ gem uninstall mysql2
$ gem install mysql2
这样就可以成功安装了。
指定 MySQL 客户端路径
如果你不想安装 MySQL 客户端,也可以通过指定 MySQL 客户端路径来解决问题:
gem install mysql2 -- --with-mysql-dir=/usr/local/opt/mysql
其中 /usr/local/opt/mysql 是 MySQL 客户端的默认安装路径,你需要根据实际安装情况指定。
总结
在 macOS Sierra 上安装 mysql2 gem 出错的问题,是由于系统默认不安装 MySQL 客户端库导致的。为了解决这个问题,你可以通过安装 MySQL 客户端或指定 MySQL 客户端路径的方式来解决。这里我们推荐使用 Homebrew 安装方式来得到 MySQL 客户端。
极客教程