0

Chef を使用して Rails アプリケーションをデプロイしています。その間

gem インストール 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_link' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:619:intry_link0 内:476:/opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb の try_func 内: 894: block in have_func' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:790:in/opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb からの「checking_for 内のブロック内」:284:/opt/chef/embedded/lib/ruby/1.9.1/mkmf から block (2 levels) in postpone' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:254:inの「オープン内」。 rb:284:in block in postpone' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:254:inopen' from /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 から「checking_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 に記録されます。 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 に答える