无法通过bundler在RHEL 5.8上安装mysql2 gem

时间:2013-02-14 15:41:16

标签: mysql ruby rubygems bundler mysql2

这是我的堆栈:

  • RHEL 5.8 x86_64
  • MySQL 5.5 x86_64
  • Ruby 1.9.3p345
  • Rails 3.2.8

我正在通过bundler安装mysql2 0.3.11 gem并得到错误,问题似乎与Ruby gem mysql2 install failingmysql2 gem installation fails的常见错误不一样。这些是我已经为mysql安装的软件包。

[user@local config]$ yum list installed | grep MySQL
Unable to read consumer identity
MySQL-client.x86_64                   5.5.29-1.rhel5                   installed
MySQL-devel.x86_64                    5.5.29-1.rhel5                   installed
MySQL-python.x86_64                   1.2.3-0.1.c1.el5                 installed
MySQL-server.x86_64                   5.5.29-1.rhel5                   installed
perl-DBD-MySQL.x86_64                 3.0007-2.el5                     installed
[user@local config]$ yum list installed | grep mysql
Unable to read consumer identity
libdbi-dbd-mysql.x86_64               0.8.1a-1.2.2                     installed

错误消息如下:

Installing mysql2 (0.3.11) with native extensions

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/home/user/.rvm/rubies/ruby-1.9.3-p385/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
creating Makefile

make
compiling result.c
In file included from ./mysql2_ext.h:39,
             from result.c:1:
./client.h:42:7: warning: no newline at end of file
compiling mysql2_ext.c
In file included from ./mysql2_ext.h:39,
             from mysql2_ext.c:1:
./client.h:42:7: warning: no newline at end of file
compiling client.c
In file included from ./mysql2_ext.h:39,
             from client.c:1:
./client.h:42:7: warning: no newline at end of file
client.c: In function a€?rb_raise_mysql2_errora€?:
client.c:98: warning: ISO C90 forbids mixed declarations and code
client.c: In function a€?rb_mysql_client_socketa€?:
client.c:590: warning: ISO C90 forbids mixed declarations and code
linking shared-object mysql2/mysql2.so
/usr/bin/ld: cannot find -lmysqlclient_r
collect2: ld returned 1 exit status
make: *** [mysql2.so] Error 1


Gem files will remain installed in /home/user/.rvm/gems/ruby-1.9.3-p385/gems/mysql2-0.3.11 for inspection.
Results logged to /home/user/.rvm/gems/ruby-1.9.3-p385/gems/mysql2-0.3.11/ext/mysql2/gem_make.out
An error occurred while installing mysql2 (0.3.11), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling.

1 个答案:

答案 0 :(得分:0)

尝试使用

bundle config build.mysql2 --with-mysql-config=/.../mysql_config

sudo gem install mysql2 -- --with-mysql-config=/.../mysql_config