我看到关于这个问题的主题很少,但没有一个能解决我的问题。
因此。平台是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:intry_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:inblock 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:inblock (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:inblock 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:inpostpone' 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:inhave_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上遇到了类似的问题
答案 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-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
,它也会导致本机宝石出现故障。您可能想尝试成为root,并使用实际的根环境和root ruby版本,并仔细检查ruby版本是否符合预期,如下所示:
$ sudo su -
# which ruby
# ruby --version
# gem install mysql2 --version '>=0.3.17'