2012-05-11 98 views
1

更新我的紅寶石1.9.3和導軌3.2.3後我一直在試圖從RailsApp Projects devise, rspec and cucumber跟隨教程,我試圖在黃瓜嘗試時出現問題步驟Rails 3.2.3耙黃瓜:庫未加載

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。我卸載了nokogiri寶石,然後重新安裝它,現在似乎正在工作。

一個重要的注意事項,網上有很多垃圾:不要接觸,除非你真的知道你在做什麼,/opt/local/lib/libiconv.2.dylib文件或它可以產生問題OSX應用程序。

+0

此解決方案至今仍然相關。升級到Rails 4時有類似的問題。 – wachichornia

-2

我在OSX上遇到了同樣的問題。

在我的.bash_profile我有:

出口DYLD_LIBRARY_PATH = $ DYLD_LIBRARY_PATH:在/ usr /本地/ MySQL的/ lib目錄:/ usr/lib中/

我刪除了/ usr/lib中,一切工作正常。

要調試此我開始:

  1. 定位libiconv.dylib
  2. oTool -L {} LIB - 從前面的步驟每個庫。

/usr/lib中的系統版本是7.0版,這是錯誤的來源。然後,我意識到系統正在退回到較舊版本的庫中,從而導致我的環境變量。

如果遇到此問題,請首先檢查LD_LIBRARY_PATH和DYLD_LIBRARY _PATH!