0

我正在使用 Chef 部署我的 Rails 应用程序。尽管

宝石安装 mysql

我收到以下错误,

Gem::Installer::ExtensionBuildError: 错误: 无法构建 gem 原生扩展。

/opt/chef/embedded/bin/ruby 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/chef/embedded/bin/ruby --with-mysql-config --without-mysql-config /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb: 381:在try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:461:in/opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb 中的 try_link0中:476:在 /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb 中的try_link' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:619:intry_func 中: 894:in block in have_func' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:790:inblock in checks_for' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:284:in block (2 levels) in postpone' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:254:inopen' 来自/opt/chef/embedded/lib/ruby/1.9.1/mkmf。 rb:284:in block in postpone' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:254:inopen' 来自 /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:280:inpostpone' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:789:in来自 /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:893:in 的检查_for have_func' from extconf.rb:45:in'

Gem 文件将继续安装在 /var/www/project-name/releases/daf93f4783a7238e5a8198c1fd50e4e1de93f654/vendor/bundle/ruby/1.9.1/gems/mysql-2.9.1 以供检查。结果记录到 /var/www/project-name/releases/daf93f4783a7238e5a8198c1fd50e4e1de93f654/vendor/bundle/ruby/1.9.1/gems/mysql-2.9.1/ext/mysql_api/gem_make.out 安装 mysql (2.9. 1),并且 Bundler 无法继续。gem install mysql -v '2.9.1'在捆绑之前确保成功。

我正在使用 RHEL 6。我还有一个单独的 mysql 安装手册。我尝试使用 yum 命令手动安装 Mysql。

我试过

yum install mysql-devel 然后运行 ​​gem install mysql

还是行不通。谁能帮我吗。

谢谢

4

2 回答 2

2

听起来你没有编译器。在 debian/ubuntu 系统上,您可以获得编译和构建软件包所需的一切:

sudo apt-get install build-essential

在 Fedora/Red Hat 上,我认为应该是:

sudo yum groupinstall "Development Tools"
于 2013-08-21T21:28:10.713 回答
1

build-essentials食谱添加到您的运行列表并配置它的“compiletime”属性。

以下答案报告了构建 postgres gem 的相同问题

于 2013-08-22T21:42:15.390 回答