使用JRuby gem为Ruby安装MySQL gem

时间:2010-01-24 16:18:31

标签: mysql ruby rubygems jruby

我的机器上安装了JRuby MySQL gem。但是,出于某种原因,我不得不改为Ruby而不是JRuby,除了没有安装Ruby的MySQL gem之外,一切似乎工作正常,现在当我尝试安装它时,我得到以下错误:

Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb --with-mysql-dir=/usr/include/mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** 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

我用Google搜索,发现我可能需要安装libmysqlclient12-dev包。

但是当我尝试这样做时,我得到了以下错误:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libmysqlclient12-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package libmysqlclient12-dev has no installation candidate

现在我似乎正在撞墙而不是向前推进。任何指针或帮助将不胜感激。

干杯

3 个答案:

答案 0 :(得分:1)

您使用的是哪个gem命令?红宝石或红宝石?

如果您使用* unix,请尝试which gem

看看你的路径,确保C-ruby二进制文件位于JRuby二进制文件的前面(如果你不再使用它,可以从你的路径中删除JRuby)。

答案 1 :(得分:1)

我猜是从包管理器那里运行Linux。

libmysqlclient12-dev是一个Ubuntu包。如果你正在运行其他发行版,它很可能只是命名别的东西。我相信你需要的Fedora包是mysql-devel。如果您使用发行版和libmysqlclient12-dev的名称进行搜索,您可能会找到它的确切内容。

您的发行版也可能预先构建了一些宝石版本。 Fedora(这是我使用的)没有预先构建的mysql gem,但是另一个distrubution可能。在Fedora中,根据gem,它们被命名为rubygem-GEMNAME。例如,sqlite预构建的gem是rubygem-sqlite3-ruby

答案 2 :(得分:1)

我有同样的问题。我做了

apt-get install libmysqlclient-dev

在Ubuntu上,它有效。