5

Lion OS X でアプリを実行すると、次のエラーが発生します。

Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby'
/Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/eventmachine-1.0.0/lib/eventmachine.rb:8:in `require': no such file to load -- rubyeventmachine (LoadError)
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/eventmachine-1.0.0/lib/eventmachine.rb:8:in `<top (required)>'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
    from /Users/adam/rubydev/future_computers/config/application.rb:7:in `<top (required)>'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:53:in `require'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:53:in `block in <top (required)>'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:50:in `tap'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:50:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'adam

これを修正する方法がよくわかりません。eventmachine宝石をGemfileに追加しましたが、役に立ちませんでした...

どうすれば直せますか?

ありがとうございました

4

6 に答える 6

19

私の場合、これで修正されました:

  • $ gem アンインストール イベントマシン
  • プロンプトで、すべてのバージョンをアンインストールするように指示します(依存関係について通知します)
  • $ バンドル インストール

私はこのhttps://github.com/eventmachine/eventmachine/issues/333を読んでいました。eventmachine に問題があったので、最新バージョンを入手することをお勧めします。

于 2013-02-28T16:28:43.133 に答える
9

私にとっては、設定を微調整してソースから eventmachine をコンパイルすることが役に立ちました。試す:

eventmachine が既にインストールされている場合はアンインストールします。

gem uninstall eventmachine

eventmachine ソースを取得します。

git clone https://github.com/eventmachine/eventmachine.git
cd eventmachine

直後に追加して編集ext/extconf.rbおよびファイルext/fastfilereader/extconf.rbCONFIG['CXX'] = "g++"require 'mkmf'

gem をコンパイルしてインストールします。

rake gem
gem install pkg/eventmachine-1.0.3.gem

これで eventmachine は問題なく動作するはずです :)

于 2014-01-06T12:27:58.683 に答える
0

この問題を追跡するのに何時間も費やしたので、別の解決策を提供します。私はやっていbundle install --deploymentて、結果をgitの別のブランチにコミットしていたので、このブランチをサーバーに直接デプロイすることができbundle installました。

問題は、eventmachine に、.gitignoreすべてのファイルを無視するように git に指示するファイルが含まれていること*.soです。このため、私がコミットしていたとき、.soファイルはコミットされず、git status. また、gemspec が存在していたため、バンドルはパッケージが完全にインストールされたと考えていました。

私の解決策は、ビルド プロセスの一部としてコマンドを追加し、.gitignoreコミットする前に gem 内のすべてのファイルを叩くことでした。

于 2013-04-22T01:40:27.517 に答える