Ho cercato di far installare Nokogiri sul mio computer (Mountain Lion) da usare con rspec e capybara, ma per la vita di me, non riesco a farlo funzionare propriamente.Ottenere nokogiri per usare una versione più recente di libxml2
Da quello che posso dire, il problema è con nokogiri che utilizza la versione sbagliata di libxml2. Ho provato a disinstallare e reinstallare libxml2 usando Homebrew (assicurandomi che sia il più recente), disinstallando e reinstallando nokogiri usando bundle, e specificando il percorso esatto dei file libxml2 che Homebrew ha installato durante l'installazione della gemma nokogiri. Le mie istruzioni di installazione più recenti sono state simili a
sudo gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28
dove tutte queste posizioni corrispondono correttamente alle posizioni in cui sono installati gli strumenti. Tuttavia, dopo l'esecuzione bundle exec rspec spec/requests/static_pages.rb
, ho ancora ottenere questo output:
/Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri.rb:28:in `require': dlopen(/Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri/nokogiri.bundle, 9): Library not loaded: /usr/local/lib/libxml2.2.dylib (LoadError)
Referenced from: /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri/nokogiri.bundle
Reason: Incompatible library version: nokogiri.bundle requires version 12.0.0 or later, but libxml2.2.dylib provides version 10.0.0 - /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri/nokogiri.bundle
from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri.rb:28:in `<top (required)>'
from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `require'
from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `each'
from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `block in require'
from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `each'
from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `require'
from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler.rb:132:in `require'
from /Users/alex/Sites/harbingernews/config/application.rb:7:in `<top (required)>'
from /Users/alex/Sites/harbingernews/config/environment.rb:2:in `require'
from /Users/alex/Sites/harbingernews/config/environment.rb:2:in `<top (required)>'
from /Users/alex/Sites/harbingernews/spec/spec_helper.rb:3:in `require'
from /Users/alex/Sites/harbingernews/spec/spec_helper.rb:3:in `<top (required)>'
from /Users/alex/Sites/harbingernews/spec/requests/static_pages_spec.rb:1:in `require'
from /Users/alex/Sites/harbingernews/spec/requests/static_pages_spec.rb:1:in `<top (required)>'
from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `load'
from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `block in load_spec_files'
from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `map'
from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `load_spec_files'
from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:22:in `run'
from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `block in autorun'
Ho provato tutti i passaggi che ho trovato on-line (la maggior parte edificio di riferimento e caricare diverse versioni di libxml2, come this one, ma non ho avuto Il mio Gemfile e Gemfile.lock possono essere trovati here. Se qualcuno mi può aiutare, lo apprezzerei molto.Non ho potuto trovare altri casi online con questo problema
Qual è l'output di 'brew --prefix libxml2'? Vedi il file extconf.rb in nokogiri/ext/nokogiri/per indizi su dove Nokogiri sta cercando libs e file header. –
Ecco l'output: /usr/local/opt/libxml2 Ho trovato il file a cui ti riferivi e penso di capire cosa significa tutto, anche se sono davvero insicuro. Devo aggiungere i percorsi da Homebrew all'elenco delle posizioni da controllare? Se lo faccio, smetteremo di usare la vecchia versione errata di libxml2? – alexlafroscia
Hai letto _ [Cosa fare se libxml2 è un idiota] (https://github.com/sparklemotion/nokogiri/wiki/What-to-if-libxml2-is-being-a-jerk) _ ? – Phrogz