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 和 rubygems 之间的版本兼容性不好
缺少 libmysqlclient-dev
gem 找不到
64 位系统上的 Mysql 32 位
解决方案
安装最新稳定版本的rvm,你可以在ruby版本之间通过rvm切换
curl -L https://get.rvm.io | bash -s stable
安装依赖
在您的系统上找到 mysql_config (find / -name mysql_config) 并运行
sudo apt-get install libmysqlclient-dev
为您的系统安装 64 位版本的 mysql
gem install mysql -- --with-mysql-config=/path/to/mysql_config
【讨论】:
【参考方案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