2

我的堆栈如下:

  • 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 和如果我尝试 yum 安装任何与 mysql 相关的软件包,它当然会像 yum 预期的那样中断 5.1)

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

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

    $> rvm --version rvm 1.14.6 (stable) by 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 Aug 14 23:54:45 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

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

    $> 导轨 -v 导轨 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 存储库。虽然 Yum 期待 mySql 5.1

4

4 回答 4

16

你安装了mysql吗?如果不这样做,您还需要安装 mysql dev 文件以进行 gem 的本机编译

sudo yum install mysql-devel

检查这个已经解释的错误通过捆绑器安装mysql2 gem

于 2012-08-25T06:13:21.763 回答
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
于 2012-09-04T12:32:18.727 回答
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
于 2014-02-24T23:48:36.557 回答
0

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

一旦安装了这些,您应该没有任何问题。

于 2012-08-25T06:13:38.367 回答