mysql2 gem安装失败

我的堆栈如下:

  • 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使用readline 5.1为Linux(x86_64)分发5.5.27

    $> 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

我得到了这个工作:

  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 

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

 sudo yum install mysql-devel 

检查这个已解释的错误通过Bundler安装mysql2 gem

如果得到这样的错误

 $ 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 

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

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