无法在Percona-XtraDB-Cluster上安装mysql gem

时间:2014-11-14 07:33:50

标签: mysql ruby percona

我看到关于这个问题的主题很少,但没有一个能解决我的问题。

因此。平台是CentOS 6.6。我已经安装了Percona-XtraDB-Cluster,他们的mysql-libs和他们的开发包。 我还有红宝石2.0.0和rubygems 2.4.3。现在我正在尝试安装mysql gem。我得到了什么:

  

构建原生扩展。这可能需要一段时间...错误:错误   安装mysql:错误:无法构建gem原生扩展。

     

/ opt / sensu / embedded / bin / ruby​​ -r ./siteconf20141114-16854-1fyrg9v.rb extconf.rb checkfor   mysql_ssl_set()... * extconf.rb失败* 无法创建Makefile   由于某种原因,可能缺乏必要的库和/或   头。检查mkmf.log文件以获取更多详细信息。你可能需要   配置选项。

     

提供配置选项: - 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 = / opt / sensu / embedded / bin / ruby​​ --with-mysql-config     --without-mysql的,配置   /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:434:in try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:519:in try_link0'从   /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:534:in try_link' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:720:in try_func'从   /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:1004:in block in have_func' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:895:in 阻止在check_for'从   /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:340:in block (2 levels) in postpone' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:310:in 打开'来自/opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:340:in block in postpone' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:310:in 打开'来自/opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:336:in   postpone' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:894:in checking_for'从   /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:1003:in have_func' from extconf.rb:45:in'

     

extconf失败,退出代码1

     

Gem文件将保持安装状态   /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/mysql-2.9.1 for   检查。记录结果   /opt/sensu/embedded/lib/ruby/gems/2.0.0/extensions/x86_64-linux/2.0.0/mysql-2.9.1/gem_make.out

我在网上找到的任何描述的解决方案都没有帮助我,所以,也许有人在这个Percona集群和ruby-2.0.0以及gem mysql-2.9.1上遇到了类似的问题

1 个答案:

答案 0 :(得分:1)

看起来你需要使用SSL的Ruby gem MySQL的开发库:

尝试以下各项:

yum install gcc

yum install mysql mysql-devel mysql-server

yum install openssl openssl-devel  

yum install ruby-devel

然后尝试安装较新的mysql2 gem:

 gem install mysql2 --version '>=0.3.17'

Sensu期待SSL,所以拥有它是件好事。 Sensu文档说“可以在没有SSL的情况下使用Sensu,但是,它是非常不鼓励的。以下说明使用工具生成自签名的OpenSSL证书”。在此处阅读有关如何启用SSL的信息:

http://sensuapp.org/docs/latest/certificates#documentation

如果您需要SSL,可能需要确保数据库确实启用了SSL:

> show variables like '%ssl%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_openssl  | YES   |
| have_ssl      | YES   |
...

您在评论中写道,您无法安装mysql-develmysql-server因为它们会与percona发生冲突。我的猜测是错误是较旧的mysql gem和/或需要SSL。

如果您使用rvm,它也可能导致这些类型的故障。您可能想尝试ruby-install并安装当前的ruby。这可能会带来您需要的依赖项。如果需要,可以在自定义目录中使用ruby-install,如下所示:

 $ ruby-install ruby 2.1.5 --install-dir ~/foo/bar/

如果您使用sudo gem install,它也会导致本机宝石出现故障。您可能想尝试成为root,并使用实际的根环境和root ruby​​版本,并仔细检查ruby版本是否符合预期,如下所示:

 $ sudo su - 
 # which ruby
 # ruby --version
 # gem install mysql2 --version '>=0.3.17'