[英]Can't install mysql gem on Percona-XtraDB-Cluster
我没有看到有关此问题的主题,但是没有一个解决了我的问题。
所以。 平台是CentOS 6.6。 我已经安装了Percona-XtraDB-Cluster,他们的mysql-libs和他们的devel软件包。 我也在那里有红宝石2.0.0和红宝石2.4.3。 现在,我正在尝试安装mysql gem。 我得到的是:
构建本机扩展。 这可能需要一段时间...错误:安装mysql时出错:错误:无法生成gem本机扩展。
/ opt / sensu / embedded / bin / ruby -r ./siteconf20141114-16854-1fyrg9v.rb extconf.rb检查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-config /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb: 434:在
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_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_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:在try_link' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:720:in
从/opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:1004:in try_func”block in have_func' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:895:in
中:在block (2 levels) in postpone' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:310:in
:在block (2 levels) in postpone' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:310:in
打开的块中/mkmf.rb:340block 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:postpone' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:894:in
inpostpone' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:894:in
/opt/sensu/embedded/lib/ruby/2.0 .0 / mkmf.rb:1003:inhave_func' from extconf.rb:45:in
'extconf失败,退出代码1
宝石文件将保留安装在/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/mysql-2.9.1中以进行检查。 结果记录到/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有类似的问题。
看起来您需要带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,因此拥有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-devel
和mysql-server
因为它们将与percona冲突。 我的猜测是错误是较旧的mysql
gem和/或对SSL的需求。
如果您使用的是rvm
,它也可能导致此类故障。 您可能要尝试ruby-install
并安装当前的ruby。 这可能会带来您需要的依赖项。 如果需要,可以在自定义目录中使用ruby-install
,如下所示:
$ ruby-install ruby 2.1.5 --install-dir ~/foo/bar/
如果您使用sudo gem install
,它也可能导致本机gem出现故障。 您可能想尝试成为root用户,并使用实际的root环境和root ruby版本,并再次检查ruby版本是否符合您的期望,如下所示:
$ sudo su -
# which ruby
# ruby --version
# gem install mysql2 --version '>=0.3.17'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.