gem install mysql2 失败

Posted

技术标签:

【中文标题】gem install mysql2 失败【英文标题】:gem install mysql2 fails 【发布时间】:2011-07-10 08:14:28 【问题描述】:

我收到了这个错误:

sudo gem install mysql2
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for rb_thread_blocking_region()... no
checking for mysql.h... no
checking for mysql/mysql.h... no
-----
mysql.h is missing.  please check your installation of mysql and try again.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=$opt-dir/include
    --with-opt-lib
    --without-opt-lib=$opt-dir/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/bin/ruby1.8
    --with-mysql-config
    --without-mysql-config


Gem files will remain installed in /var/lib/gems/1.8/gems/mysql2-0.2.6 for inspection.
Results logged to /var/lib/gems/1.8/gems/mysql2-0.2.6/ext/mysql2/gem_make.out

我试过了:

卸载mysql2并重新安装 用 apt-get 卸载 mysql 从 mysql 安装开发工具 以及 Google 上的几乎所有页面

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

在这里使用搜索很有帮助;):ruby-mysql

这是另一个线程 ;) 有同样的问题:ruby-mysql2

当你搜索“ruby mysql2”或类似的东西时还有更多。

【讨论】:

我尝试了大多数链接,这些链接也适用于 mysql2 的 windows 问题。但我在 ubuntu 上试了一下。这就是奇怪的事情! 那你应该再读一遍文章;)有一个例子如何通过apt-get安装包试试这个。【参考方案2】:

您需要在安装mysql2 gem 之前安装libmysqlclient-dev

sudo apt-get install libmysqlclient-dev
gem install mysql2

这应该可以在最新的 Ubuntu 版本上解决这个问题。

【讨论】:

在 kali 上为我工作,只是我的错误是检查 -lmysqlclient 中的 mysql_query()...不,谢谢。 如果你有mariadb,那么由于二进制更新可能无法安装libmysqlclient-dev。如果我们安装libmariadbclient-dev会很好,它会解决这两个问题。【参考方案3】:

这些是导致此故障的多种原因:

    ruby 和 ruby​​gems 之间的版本兼容性不好 缺少 libmysqlclient-dev gem 找不到 64 位系统上的 Mysql 32 位

解决方案

    安装最新稳定版本的rvm,你可以在ruby版本之间通过rvm切换

    curl -L https://get.rvm.io | bash -s stable

    安装依赖

    sudo apt-get install libmysqlclient-dev

    在您的系统上找到 mysql_config (find / -name mysql_config) 并运行

    gem install mysql -- --with-mysql-config=/path/to/mysql_config

    为您的系统安装 64 位版本的 mysql

【讨论】:

【参考方案4】:

感谢 Andre Schweighofer,感谢它

sudo apt-get install libmysqlclient-dev
gem install mysql2

..
bundle update
bundle install

完成!!!

【讨论】:

如果您使用 MariaDB 而不是 MySQL,请安装 libmariadbclient-dev【参考方案5】:

在 Ubuntu 10.10 上,我必须安装 libmysqlclient16-dev。

【讨论】:

【参考方案6】:

需要安装mysql开发包

​​>
yum install mysql-devel

【讨论】:

【参考方案7】:

我解决的方法是检查 mkmf.log,在我的情况下,它位于 ./gems/ruby-2.2.3/extensions/x86_64-linux/2.2.0/mysql2-0.4.2/mkmf.log

在我的例子中,有一个错误,它找不到 -lgmp,所以它缺少 gmp 库,所以通过 apt-get 安装,在这种情况下是 libgmp-dev。

【讨论】:

【参考方案8】:

这可能是由于 mysql 更新了二进制文件(在我的情况下它使用 Mariadb-10.0.31)并且在安装缺少的库(libmysqlclient-dev)时,我收到以下消息,无法解决:

$ sudo apt-get install libmysqlclient-dev

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libmysqlclient-dev : Depends: libmysqlclient18 (= 5.5.58-0ubuntu0.14.04.1)

但我通过首先安装 libmariadbclient-dev 解决了上述问题:-

 $ sudo apt-get install libmariadbclient-dev

它也会安装 libmysqlclient-dev,但首先要解决 mariadb 依赖关系。

【讨论】:

以上是关于gem install mysql2 失败的主要内容,如果未能解决你的问题,请参考以下文章

`block in replace_gem': Please install the mysql2 adapter: `gem install activerecord-mysql2-adap

Ruby gem mysql2 安装失败

gem install mysql2 v '0.3.11' 不适用于优胜美地

安装 Mysql 2 gem 失败

通过 Bundler 安装 mysql2 gem 时出错

错误:无法构建 gem 本机扩展(rails 3.2.3 上的 mysql2)