我的机器上安装了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
现在我似乎正在撞墙而不是向前推进。任何指针或帮助将不胜感激。
干杯
答案 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上,它有效。