2012-05-11 14 views
1

ruby​​を1.9.3に更新して3.2.3に変更しました。私はRailsApp Projects devise, rspec and cucumberからチュートリアルに従おうとしていて、キュウリを試してみると問題に遭遇していますステップRails 3.2.3 Rakeキュウリ:ライブラリがロードされていません

rake cucumber 

とレーキが中止されますエラー

dlopen(/Users/Aurelien/.rvm/gems/ruby-1.9.3-p194/gems/nokogiri-1.5.2/lib/nokogiri/nokogiri.bundle, 9): Library not loaded: /opt/local/lib/libiconv.2.dylib 
    Referenced from: /Users/Aurelien/.rvm/gems/ruby-1.9.3-p194/gems/nokogiri-1.5.2/lib/nokogiri/nokogiri.bundle 
    Reason: Incompatible library version: nokogiri.bundle requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0 - /Users/Aurelien/.rvm/gems/ruby-1.9.3-p194/gems/nokogiri-1.5.2/lib/nokogiri/nokogiri.bundle 

誰でも同様の問題を持って、それは大いに役立つだろう解決策を見つけました。現在の宝石のファイル:

gem 'rails', '3.2.3' 
gem 'sqlite3' 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 
gem "rspec-rails", ">= 2.9.0.rc2", :group => [:development, :test] 
gem "factory_girl_rails", ">= 3.1.0", :group => [:development, :test] 
gem "email_spec", ">= 1.2.1", :group => :test 
gem "cucumber-rails", ">= 1.3.0", :group => :test 
gem "capybara", ">= 1.1.2", :group => :test 
gem "database_cleaner", ">= 0.7.2", :group => :test 
gem "launchy", ">= 2.1.0", :group => :test 
gem "devise", ">= 2.1.0.rc" 
gem "cancan", ">= 1.6.7" 
gem "rolify", ">= 3.1.0" 
gem "bootstrap-sass", ">= 2.0.1" 
gem "nokogiri" 

と機能/サポート/ env.rb内

require 'cucumber/rails' 
. 
. 
. 
Capybara.default_selector = :css 
. 
. 
. 
ActionController::Base.allow_rescue = false 
. 
. 
. 
begin 
    DatabaseCleaner.strategy = :transaction 
rescue NameError 
    raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it." 
end 

おかげ

答えて

4

はどうやら問題は鋸山に付属しています。 nokogiri gemをアンインストールしてから再インストールして、今は動作しているようです。

重要な点は、Web上に多くの迷惑メールがあります。自分が行っていることを本当に知っていない限り、/opt/local/lib/libiconv.2.dylibファイルが問題を引き起こす可能性があります。 OSXアプリケーション

+0

このソリューションは、今日の時点ではまだ有効です。 Rails 4にアップグレードしたときも同様の問題がありました。これがトリックでした。 – wachichornia

-2

OSXでも同じ問題がありました。

輸出DYLD_LIBRARY_PATH = $のDYLD_LIBRARY_PATH:は/ usr/local/mysqlの/ libにします。/ usr/lib/

Iが、/ usr/libに削除され、すべてが正常に動作します私が持っていた私の.bash_profileに

。私が始めたこのデバッグする

: - 前のステップからライブラリごとに

  1. コマンドotool -L {LIB} libiconv.dylib見つけます。

/usr/libのシステムバージョンはバージョン7.0で、これがエラーの原因です。システムが古いバージョンのライブラリに落ちてしまったことに気づいたので、私の環境変数につながりました。

この問題が発生した場合は、まずLD_LIBRARY_PATHとDYLD_LIBRARY_PATHを確認してください。

関連する問題