Errore nell'installazione di Nokogiri su OSX 10.9 Maverick?


109

Ho aggiornato il mio OSX (Lion) a Mavericks e non riesco a installare Nokogiri per i miei progetti.

Ho già installato XCode 5.0.1, Command Line Tools (utilizzando xcode-select --install ) e libxml2 già installato da Homebrew e ho ancora problemi.

L'errore è:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb
checking for libxml/parser.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --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=/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --with-iconv-dir
    --without-iconv-dir
    --with-iconv-include
    --without-iconv-include=${iconv-dir}/include
    --with-iconv-lib
    --without-iconv-lib=${iconv-dir}/lib
    --with-xml2-dir
    --without-xml2-dir
    --with-xml2-include
    --without-xml2-include=${xml2-dir}/include
    --with-xml2-lib
    --without-xml2-lib=${xml2-dir}/lib
    --with-xslt-dir
    --without-xslt-dir
    --with-xslt-include
    --without-xslt-include=${xslt-dir}/include
    --with-xslt-lib
    --without-xslt-lib=${xslt-dir}/lib
    --with-libxslt-config
    --without-libxslt-config
    --with-pkg-config
    --without-pkg-config
    --with-libxml-2.0-config
    --without-libxml-2.0-config
    --with-libiconv-config
    --without-libiconv-config
/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
    from extconf.rb:116:in `<main>'


Gem files will remain installed in /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9 for inspection.
Results logged to /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9/ext/nokogiri/gem_make.out
An error occured while installing nokogiri (1.5.9), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.5.9'` succeeds before bundling.

Ho installato libxml2, libxslt e libiconv da Homebrew e ho impostato i parametri per installare Nokogiri, ma non funzionano anche.

Non riesco a trovare cosa c'è che non va nel mio ambiente, puoi aiutarmi?



2
Prova ad aprire xcode e accetta l'EULA / licenza.
Moander

Risposte:


245

Puoi anche installare Nokogiri su Mac OS X 10.9 Mavericks con l'installazione completa di XCode utilizzando:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2

Aggiornare

Per coloro che utilizzano Yosemite funzionerà il seguente comando:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2 --use-system-libraries

oppure potrebbe effettivamente essere nel tuo file MacOSX10.11.sdk cartella (la mia era al 18-set-2015) comunque, quindi anche se non sei ancora completamente all'altezza di El Capitan, ho recentemente aggiornato XCode e potresti dover utilizzare El Capitan SDK percorso, che segue di seguito:

Aggiornare

Per coloro che utilizzano El Capitan funzionerà il seguente comando:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries

Aggiornare

Per coloro che utilizzano Sierra, il seguente comando funzionerà:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries

4
Non per me: "manca libxml2. Visita nokogiri.org/tutorials/installing_nokogiri.html per assistenza con l'installazione delle dipendenze." Continuo a ricevere lo stesso errore.
Pop-A-Stash

1
Ho dovuto aggiungere --use-system-libraries. Poi ha funzionato su una nuovissima installazione di mavericks con Xcode 5.1.1 e brew.
jmg

11
Ho dovuto aggiungere --use-system-librariesper farlo funzionare:gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 --use-system-libraries
Maverick

1
Questo è l'unico che funzionerebbe per me, il 10.10.3: sudo gem install nokogiri - --with-iconv-lib = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs /MacOSX10.10.sdk/usr/lib --with-iconv-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include - with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include / libxml2 --use-system-libraries
Erik Villegas

10
Potresti voler aggiornare la tua risposta con il comando più generico che dovrebbe funzionare su tutte le versioni di OS X e percorsi di installazione di Xcode:gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Philipp


20

Ho trovato questo registro e ho visto che gcc-4.2 non è stato trovato:

package configuration for libxslt
cflags: -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2

package configuration for libxml-2.0
cflags: -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxml2

package configuration for libiconv is not found
"/usr/bin/gcc-4.2 -o conftest -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/ruby/backward -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1 -I. -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 -I/usr/local/Cellar/libiconv/1.14/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/include -I/Users/ericcamalionte/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE    -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES -DNOKOGIRI_LIBXML2_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0"' -DNOKOGIRI_LIBXSLT_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26"' -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  conftest.c  -L. -L/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libiconv/1.14/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/Users/ericcamalionte/.rvm/usr/lib -L.  -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libxml2/2.9.1/lib     -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2  -lxml2  -lruby.1.9.1-static  -lpthread -ldl -lobjc  "
sh: /usr/bin/gcc-4.2: No such file or directory
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

Per risolvere questo problema ho installato apple-gcc42 usando homebrew brew install apple-gcc42e creato un collegamento simbolico al mio / usr / bin:

sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc-4.2


questo non ha risolto il problema per me, ho ancora lo stesso messaggio di errore :(
David Portabella

1
Ho disinstallato completamente rvm e ruby ​​(da brew), l'ho installato di nuovo e ha funzionato.
David Portabella

3
Quindi, corro brew install apple-gcc42... e funziona. Quel comando non funziona per te?
squiter

4
Ho eseguito xcode-select --installprima dell'installazione della birra e ora tutto funziona.
Quickredfox

1
@LucyBain davvero non ricordo ... ma penso che il file di registro fosse nella stessa directory di gem_meake.out ...
squiter

15

Se stai utilizzando Xcode 5.1, gli strumenti della riga di comando non funzionano per nokogiri 1.6.1. Dovrai scaricare gli strumenti di fine ottobre 2013 da Apple . Una volta che fai quella corsa

sudo xcode-select -s /Library/Developer/CommandLineTools/

per configurare la macchina in modo che utilizzi gli strumenti della riga di comando di Xcode 5.0.X, quindi esegui

gem install nokogiri

Se desideri reimpostare gli strumenti della riga di comando alla versione Xcode.app in seguito, esegui

sudo xcode-select -r

Oppure, un'altra cosa che puoi fare è aggiungere il flag per ignorare gli argomenti della riga di comando sconosciuti. Quindi l'installazione ha questo aspetto:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri

12

Questo è ciò che ha funzionato per me su OSX Mavericks:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri -v '1.6.1' --verbose --no-ri --no-rdoc

sorprendentemente questa è l'unica cosa in tutto questo battistrada che ha aiutato anche me. Grazie!
KonstantinK

Il problema con questo è che l'uso sudocon RVM o rbenv causerà problemi poiché root non sa dove risiedono i Rubies in sandbox. Questo è trattato nella pagina di installazione RVM . L'OP utilizza RVM e l'utilizzo sudocauserebbe l'installazione di Nokogiri in Ruby di Apple, non dell'utente. Quindi, non farlo a meno che tu non sia SICURO di voler installare in Ruby di Apple se sei su Mac OS, o nel sistema Ruby se sei su un altro * nix.
Tin Man

10

Sono su OSX Mavericks e il mio problema si è rivelato essere una cattiva installazione di Ruby.

Quindi, ho reinstallato ruby ​​con rvm:

rvm remove ruby 2.0.0p451
rvm remove ruby-2.0.0-p451 && rvm install ruby-2.0.0-p451

Allora sono stato in grado di farlo

gem install nokogiri --no-ri --no-rdoc

Problema risolto.


Freddo. Ora che stai usando rvm su mavericks prova ad aprire vim. Errore SEGV? Bello.
Tim

Non sono riuscito a rimuovere il gemset perché le cartelle non erano vuote, ma reinstallare il gemset (anche se c'erano errori) sì! Questa è l'unica cosa che ha funzionato per me!
Onikoroshi

9

In genere mi piace attenermi alle cose fornite dal sistema. Questo ha funzionato per me:

gem install nokogiri -- --with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/ --with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/

dopo averlo cercato su Google per ore, quella era l'unica soluzione che ha funzionato per me, grazie! : D
Rogerio Chaves

5

Mi sono imbattuto in questo problema immediatamente dopo aver installato l'aggiornamento 10.9.5 di Mavericks e l'aggiornamento degli strumenti per sviluppatori 10.9 di Apple. Ho corso xcode-select --install, ma questo non ha risolto il problema. Poi ho aperto XCode, ho accettato l'eula e sono uscito da XCode. Questo ha risolto il problema.


3

Ho avuto questo problema oggi, su Maverick, ecco come ho risolto il problema:

brew update
brew install libiconv
brew link libiconv

Assicurati di sapere che la versione di libiconv nella mia cantina di seguito era 1.14, quindi installa come di seguito:

gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

Se hai bisogno di una versione particolare di nokogiri, ad esempio -v '1.6.2.1', installala come:

gem install nokogiri -v '1.6.2.1' -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

Nokogiri è stato installato con successo!


Ha funzionato anche per me su Yosemite. Nessuna delle risposte precedenti lo ha fatto.
MattL

3

Questo è lo stesso del post di @ thomas_witt ma funziona su Mac OS X Sierra:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries

2

Per far funzionare l'installazione, ho dovuto modificare i percorsi dei file nel gem installcomando in modo che corrispondessero a quelli del mio sistema. Ho diverse versioni di libxml2 e libiconv e una struttura di file leggermente diversa. Il comando, con le mie modifiche, è:

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 
                        --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib 
                        --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 
                        --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include 
                        --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

Dovevo essere molto meticoloso con i percorsi dei file. Mi ci sono voluti più tentativi per costruire correttamente i comandi.
mosse oscure

Ecco un collegamento a un'altra soluzione al problema di una versione di libxml errata.
mosse oscure

2

Per le persone che utilizzano MacPort , assicurati di aver installato libxml2tramite MacPorts. Quindi digita:

bundle config build.nokogiri --use-system-libraries
bundle install

Questo dovrebbe fare il trucco, ha funzionato per me senza utilizzare percorsi completi.



2

Ecco un altro riferimento:

system: OS X Yosemite 10.10
rvm: 1.26.10
brew: 0.9.5
ruby: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]

Ho ricevuto un errore durante l'installazione di nokogiri

errore come questo:

.rvm/rubies/ruby-2.2.0-p0/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)

Devi prima installare gli strumenti di sviluppo.

allora probabilmente avrai bisogno di:

$ xcode-select --install

o se hai un errore come

checking for libxml/parser.h... no

Ho appena aggiustato il percorso lib di:

gem uninstall nokogiri libxml-ruby
brew update
brew uninstall libxml2
brew install libxml2 libxslt
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/

per il bundle serve qualcosa come:

bundle config build.nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/
bundle install

2

Questo funziona per me

system: OS X Yosemite 10.10
rvm: 1.26.10
ruby: ruby 2.2.1 

Basta eseguire sotto due comandi

$ xcode-select --install

Ti chiederà di scaricare, dì "sì", quindi ti chiederà di installare il componente xcode, fai clic su Installa.

Ora prova a installare gem con il comando seguente

gem install nokogiri --no-ri --no-rdoc

Questo funziona per me con l'ambiente sopra.


1

Mi sono imbattuto nello stesso problema con Mavrick e la soluzione è stata:

xcode-select --install

Tuttavia, ciò non funziona poiché la pagina di download di Apple per lo strumento da riga di comando non ha quel programma di installazione disponibile pubblicamente ora.

Quindi, se vuoi avere gli strumenti da riga di comando per Mavricks devi avere un account a pagamento . Allora solo tu potrai installarlo. Una volta installato, non dovrai affrontare questo problema con Nokogiri.


Non ho un account a pagamento e mi sono stati installati gli strumenti della riga di comando. Ho installato utilizzando il terminale, ma un mio amico ha installato utilizzando quella pagina di download e anche lui non ha un account a pagamento.
squiter

Sono d'accordo con te. La stessa cosa è successa con me fino al 24 novembre 2013. Tuttavia, se vai su quella pagina ora e provi ad accedervi, ti darà questo errore. La cosa strana è che accedi con le tue credenziali ma ti manterrà il login come ospite. Questo è il messaggio che ricevo nella pagina con il mio account: Programma per sviluppatori Apple Avviso importante Non siamo in grado di elaborare la tua richiesta. Torna alla pagina precedente o esci dal browser e riprova la richiesta. Se hai bisogno di assistenza, contatta il supporto per gli sviluppatori Apple.
shinesecret

1

Ho avuto questo stesso errore su una nuova installazione di Mavericks. Dopo aver avuto un errore di giudizio, ho rinominato il mio pacchetto di app Xcode inXcode 5.0.1.app .

Apparentemente lo script di installazione di Nokogiri non cita i suoi percorsi e quindi lo spazio nel nome del file ha causato ogni sorta o problema. Non è stato fino a quando ho provato brew install libxml2che l'errore è diventato evidente.

Lezione appresa: gli spazi nei nomi dei file sono dannosi.


1

Nel mio caso, ho dovuto eseguire effettivamente /usr/bin/gcc-4.2 dopo averlo collegato simbolicamente. Devi accettare il contratto di licenza, altrimenti si blocca.


1

Il messaggio di errore fornisce un indizio qui: The compiler failed to generate an executable file. (RuntimeError)

xcode-select --install # not sure if this is required  
brew install apple-gcc42  
gem install nokogiri  

Potrebbe anche essere necessario installare e collegare questi:

libxml2 libxslt

1
brew install libxml2 libxslt
gem install nokogiri -- \
    --with-xml2-include=/usr/local/Cellar/libxml2/*/include/libxml2 \
    --with-xml2-lib=/usr/local/Cellar/libxml2/*/lib \
    --with-xslt-dir=/usr/local/Cellar/libxslt/*

1

Per me l'errore era che quel gcc (4.2.1, installato da Homebrew) si lamentava che:

-E, -S, -save-temps and -M options are not allowed with multiple -arch flags

Ho risolto il problema forzando solo x86_64:

ARCHFLAGS="-arch x86_64" gem install nokogiri 

1

Dopo l'aggiornamento a Maverick, ho avuto un problema simile. Uso RVM con Ruby 1.9.2-p320 e ho provato diverse soluzioni fornite qui, ma nulla ha risolto il problema.

Poi sono passato a Ruby 2.1.2 e bundle installho installato immediatamente Nokogiri.


1

Se qualcuno sta riscontrando questo problema su el capitan, durante l'utilizzo di bundler.

Assicurati che gli strumenti della riga di comando xcode siano installati ed esegui questo:

bundle config build.nokogiri --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries

1

Stavo affrontando lo stesso problema nelle ultime due settimane mentre cercavo di eseguire un'applicazione versione 3 di rails.

Il problema è che il tuo rvm / rbenv non utilizza il compilatore C.

Usa questo comando per rvm per prendere il compilatore C compatibile

CC=gcc rvm install-version

Quindi, se stai usando Ruby 1.9.3, usalo in questo modo

CC=gcc rvm install-1.9.3

Usa questo comando ogni volta che non sei in grado di raggruppare l'installazione o altro. Questa cosa sta funzionando su El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7 Si spera che risolva il problema.

Stavo affrontando lo stesso problema nelle ultime due settimane mentre cercavo di eseguire un'applicazione versione 3 di rails.

Il problema è che il tuo rvm / rbenv non utilizza il compilatore C.

Usa questo comando per rvm per prendere il compilatore C compatibile

CC=gcc rvm install-version

Quindi, se stai usando Ruby 1.9.3, usalo in questo modo

CC=gcc rvm install-1.9.3

Usa questo comando ogni volta che non sei in grado di raggruppare l'installazione o altro.

Questa cosa sta funzionando su El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7 Si spera che risolva il problema. E anche se hai già l'Xcode e quindi non ricevi gli stessi errori durante l'installazione di nessuna gemma, prova questa soluzione.


1

Ho aggiunto i miei risultati qui dopo che mi sono imbattuto in questo stesso problema poco dopo un aggiornamento: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/

La soluzione è semplicemente questi 2 comandi:

xcode-select --install
gem install nokogiri

Spero che sia d'aiuto.


5
Si prega di postare il materiale qui - i collegamenti potrebbero essere interrotti (vedere le linee guida)
Justin

Mi ha aiutato, anche se faccio eco al sentimento di postare la risposta qui, piuttosto che in un link :)
Richard

Questa è quella che è considerata una risposta solo link che è sconsigliata su Stack Overflow. Invece di pubblicare solo un collegamento al tuo sito, riassumi anche le informazioni importanti nella tua risposta. In questo modo, se il collegamento marcisce, come tendono a fare, la risposta continuerà a fornire un certo valore.
Tin Man

0

Ho avuto anche questo problema. L'esecuzione ha brew doctormostrato che avevo una versione inaspettata di libiconv in / user / local / lib.

Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:
    /usr/local/lib/libcharset.1.dylib
    /usr/local/lib/libiconv.2.dylib

Quindi li ho rimossi e ho ricreato libxml:

rm  /usr/local/lib/libiconv*
andromeda:nokogiri-1.6.0 Jeff$ brew install libxml2 libxslt
...
==> Summary
🍺  /usr/local/Cellar/libxslt/1.1.28: 145 files, 3.3M, built in 36 seconds

Infine, ho installato nokogiri:

Jeff$ gem install nokogiri
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.0
1 gem installed

ho avuto un problema simile (un libiconv scollegato). Ho scollegato libiconv e reinstallato. brew install libiconv, quindi gem install nokogirl.
Ben

0

Nessuna di queste risposte ha funzionato per il mio caso particolare e, dato che sono un neofita, ho pensato che la mia soluzione potrebbe essere in grado di aiutare qualcun altro.

Sto usando Yosemite e stavo usando Ruby 1.9.3p547. C'era un rischio per la sicurezza per p547, quindi stavo cercando di aggiornare a Ruby 1.9.3p550 o superiore. Ho usato RVM, poi ho provato a migrare le mie gemme e molte di loro non sono andate. Quindi ho provato a eseguire l'installazione in bundle ma non funzionava e ho pensato che forse fosse un conflitto tra i vari percorsi e dipendenze, quindi ho rimosso la versione precedente di Ruby. Questo ha rotto tutto.

Continuavo a ricevere un messaggio che diceva che mancava il compilatore C, anche se avevo scaricato XCode e recentemente aggiornato gli strumenti della CLI. Ho trovato un altro sito Web che mi diceva di scaricare un GCC di terze parti, cosa che ho fatto. che ha peggiorato tutto.

Ora ricevo un messaggio che dice che devo correggere i miei profili e PERCORSI o potrebbe essere più semplice reinstallare OSX. Così ho fatto.

Ad ogni modo, una storia più lunga è semplicemente lunga: la soluzione che alla fine ha funzionato per me è stata quella di sbarazzarmi di RVM e usare brew per scaricare la versione di Ruby che volevo prima di correre bundle install. Installa la versione corretta di Nokogiri PRIMA.

brew install ruby193
sudo gem install nokogiri -v '1.6.0'
bundle install

L'utilizzo sudocauserà l'installazione di Nokogiri nell'unico Ruby conosciuto da root, che è molto probabile che sia il Ruby installato di Apple a meno che non si utilizzi Homebrew. Poiché l'OP utilizzava RVM, ciò significa che Nokogiri non sarebbe stato visto da un Ruby gestito da RVM e avrebbe solo aggravato il problema. L'utilizzo sudopotrebbe aver funzionato in questo caso, ma non dovrebbe essere provato con un RVM o un Ruby gestito da rbenv. RVM dice specificamente di non farlo nella documentazione di installazione .
Tin Man

0

per Windows puoi anche provare l'installazione locale:

  1. scarica la gemma appropriata in base al tuo ambiente.

  2. vai alla directory in cui hai salvato il file gem.

  3. gem install --local nokogiri-1.6.3.1-x86-mingw32.gem

se non ha funzionato puoi controllare se hai zlib e mingw o il compilatore c corretto installato.


0

Ogni singola dannata cosa qui non l'ha fatto per me (non sono entrato in reinstallazione di brew, oy), ma alla fine lo ha fatto (trovato tramite un bug report su qualche progetto non correlato):

gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/usr/include/libxml2

In bocca al lupo. Yay for #yakshaving!


-3

Controlla la versione degli strumenti della riga di comando. Configura la tua macchina per utilizzare gli strumenti della riga di comando Xcode 5.0.X, quindi esegui:

gem install nokogiri

dovresti usare questo comando. terminale aperto. e scrivi questo comando. export NOKOGIRI_USE_SYSTEM_LIBRARIES = true
Durul Dalkanat
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.