mysql2 gem安装失败

时间:2012-08-25 05:52:58

标签: mysql ruby-on-rails ruby mysql2

我的堆栈如下:

  • CentOS 6.3
  • 安装了MySQL 5.5(按照http://www.if-not-true-then-false.com/2010/install-mysql-on-fedora-centos-red-hat-rhel/的步骤进行操作,因为yum仍然有MySQL 5.1,如果我尝试安装任何与mysql相关的软件包,它当然会按照yum预期的那样中断5.1)

    $> mysql --version mysql Ver 14.14 Distrib 5.5.27,适用于Linux(x86_64),使用readline 5.1

    $> ruby --version ruby 1.9.3p194(2012-04-20修订版35410)[x86_64-linux]

    $> rvm --version rvm 1.14.6(稳定)作者:Wayne E. Seguin,Michal Papis [https://rvm.io/]

    $> uname -a Linux localhost.mkf 2.6.32-279.5.1.el6.x86_64#1 SMP Tue Tue Aug 14 23:54:45 UTC 2012 x86_64 x86_64 x86_64 GNU / Linux

    $> nginx -v nginx版本:nginx / 1.2.2

    $> rails -v Rails 3.2.6

当我尝试安装mysql2 gem时,出现以下错误:

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

        /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
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
--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/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby
--with-mysql-config
--without-mysql-config


Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11       for inspection.
Results logged to /usr/local/rvm/gems/ruby-1.9.3-p194/gems/mysql2-    0.3.11/ext/mysql2/gem_make.out

当我这样做时

$> find / -name mysql.h  

我什么都没得到

Mysql运行正常,我已经在其中创建了数据库和表,并且sql正在运行,没有任何问题。

是否可以在我的堆栈中安装mysql2 gem?如果是这样,那么任何我不知道的是什么?

更新:我尝试yum install mysql-devel它会抛出错误,因为我 安装了mysql5.5,使用Remi存储库。虽然百胜期待 mySql 5.1

4 个答案:

答案 0 :(得分:16)

你安装了mysql吗? 如果不这样做,你还需要安装mysql dev文件,以便本地编译gem

sudo yum install mysql-devel

检查已经解释过的Errors Installing mysql2 gem via the Bundler

答案 1 :(得分:3)

我有这个工作:

 wget http://cdn.mysql.com/Downloads/MySQL-5.5/MySQL-devel-5.5.27-1.el6.x86_64.rpm 

 rpm -Uvh MySQL-devel-5.5.27-1.el6.x86_64.rpm 

 gem install mysql 

 gem install mysql2

答案 2 :(得分:3)

如果得到这样的错误

$ sudo yum install mysql-devel

Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
10gen                                                                                                                                                      | 2.5 kB     00:00
base                                                                                                                                                       | 3.7 kB     00:00
centosplus                                                                                                                                                 | 3.4 kB     00:00
Not using downloaded repomd.xml because it is older than what we have:
  Current   : Wed Feb 12 07:03:25 2014
  Downloaded: Sat Jan  4 21:29:15 2014
contrib                                                                                                                                                    | 2.9 kB     00:00
epel                                                                                                                                                       | 4.2 kB     00:00
epel/primary_db                                                                                                                                            | 5.9 MB     00:00
extras                                                                                                                                                     | 3.4 kB     00:00
newrelic                                                                                                                                                   |  951 B     00:00
rpmforge                                                                                                                                                   | 1.9 kB     00:00
rpmforge-extras                                                                                                                                            | 1.9 kB     00:00
ucloud                                                                                                                                                     | 1.3 kB     00:00
updates                                                                                                                                                    | 3.4 kB     00:00
updates/primary_db                                                                                                                                         | 2.0 MB     00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql-devel.x86_64 0:5.1.73-3.el6_5 will be installed
--> Processing Dependency: mysql = 5.1.73-3.el6_5 for package: mysql-devel-5.1.73-3.el6_5.x86_64
--> Finished Dependency Resolution
Error: Package: mysql-devel-5.1.73-3.el6_5.x86_64 (updates)
           Requires: mysql = 5.1.73-3.el6_5
           Installed: mysql-5.5.34-1.el6.remi.x86_64 (@remi)
               mysql = 5.5.34-1.el6.remi
           Available: mysql-5.1.71-1.el6.x86_64 (base)
               mysql = 5.1.71-1.el6
           Available: mysql-5.1.73-3.el6_5.x86_64 (updates)
               mysql = 5.1.73-3.el6_5
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

试试这个

sudo yum --enablerepo=remi -y install mysql-devel

答案 3 :(得分:0)

要获取任何软件的头文件,您需要安装-dev-devel变体。由于您使用的是非标准RPM,因此您可能希望查看相同的源是否具有该版本。

安装完成后,您应该没有任何问题。

相关问题