我正在使用Chef部署我的Rails应用程序 . 而
gem install 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 = $ / include --with-opt-lib --without-opt-lib = $ / 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'中:编译器无法生成可执行文件 . (RuntimeError)您必须首先安装开发工具 . 来自/opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:461:intry_link0'来自/opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:476:in try_link'来自/opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:619:intry_func'来自/opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:894:in block in have_func'来自/opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:790:inblock in checking_for'from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:284:in block (2级)推迟'来自/opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:254:inopen'来自/opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb :284:从/opt/chef/embedded/lib/ruby/1.9.1/mkmf推迟'from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:254:inopen' . rb:280:推迟'来自/opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:789:inchecking_for'来自/opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb :893:来自extconf.rb的have_func':45:'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
还是行不通 . 谁能帮我吗 .
谢谢
2 回答
将build-essentials cookbook添加到您的运行列表并配置它的"compiletime"属性 .
以下答案报告了构建postgres gem的同样问题
听起来你没有编译器 . 在debian / ubuntu系统上,您可以获得编译和构建包所需的一切:
在Fedora / Red Hat上我认为它应该是: