2014-05-01 15 views
6

installa FAIL mostrando:Nokogiri gemma non riesce a installare in OS X Mavericks

checking for iconv_open() in iconv.h... no 
checking for iconv_open() in -liconv... no 
checking for iconv_open() in -liconv... no 
checking for libiconv_open() in iconv.h... no 
checking for libiconv_open() in -liconv... no 
checking for libiconv_open() in -liconv... no 
libiconv is missing. 

Tuttavia, guardando mkmf.log di nokogiri, i seguenti errori vengono mostrato:

ld: warning: ignoring file /usr/local/Cellar/libxslt/1.1.28/lib/libxslt.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libxslt/1.1.28/lib/libxslt.dylib 

ld: warning: ignoring file /usr/local/Cellar/libxml2/2.9.1/lib/libxml2.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libxml2/2.9.1/lib/libxml2.dylib 

ld: warning: ignoring file /usr/local/Cellar/libiconv/1.14/lib/libiconv.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libiconv/1.14/lib/libiconv.dylib 

ho Xcode ed è strumenti di comando installati. mio ~/.bash_profile ha 64bit alla compilazione costretto da: ARCHFLAGS export = "- arch x86_64"

ho libxml2, libxslt, e libiconv installato tramite Homebrew, e ciascuno è collegato. Ho provato a installare tutti questi senza ARCHFLAG in .bash_profile.

Ho anche installato apple-gcc42 e collegato, come da come ho trovato.

Ho provato a installare nokogiri passando i percorsi a libxml2, libxslt e libiconv in/usr/local/Cellar /, ma l'installazione continua a fallire, con gli stessi errori di cui sopra.

Ho sprecato almeno un giorno su questo - solo cercando di ottenere un gemma Ruby installato. Mi piacerebbe davvero tornare a svilupparmi davvero.

Qualcuno può aiutare per favore?

risposta

21

L'impostazione NOKOGIRI_USE_SYSTEM_LIBRARIES=1 prima di installare effettivamente la gemma ha fatto il trucco per me.

Riassumendo:

  • Se precedentemente installato, disinstallare la gemma:
    $ gem uninstall nokogiri

  • Usa Homebrew installare libxml2, libxslt e libiconv se necessario:
    $ brew install libxml2 libxslt libiconv

  • Installa la gemma specifichi ng i percorsi alle librerie da collegare contro:
    $ NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-config="$(brew --prefix libxml2)/bin/xml2-config" --with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"

+5

+1 'NOKOGIRI_USE_SYSTEM_LIBRARIES = 1 gem install nokogiri' è stato sufficiente per ottenere questo da installare per me. Questo dovrebbe essere corretto, le installazioni non dovrebbero essere così difficili. Io uso vere seghe di nokogiri come le seghe dozuki e usarle per tagliare le code di rondine non è un problema. –

+0

+1 per questa soluzione, ha funzionato anche per me (il tutorial ufficiale no), tuttavia ecco il link: http://nokogiri.org/tutorials/installing_nokogiri.html – herrjeh42

+0

Questo ha funzionato per me. Lo script –

0
  • Controllare se HomeBrew sia installato correttamente con gli opportuni strumenti della riga di comando XCode.

birra medico

  • È inoltre possibile controllare tramite XCode> Preferenze

Con validi strumenti a linea di comando installati, sono stato in grado di risolvere l'errore nokogiri incontrato dopo l'aggiornamento OSX Maverick.

Inoltre, è stato rilevato che alcuni pacchetti di "brew" erano obsoleti dopo l'upgrade da OS X Mountain Lion a Maverick. (per esempio.qt, PostgreSQL)

2
  • Come soluzione self-contained, ho messo insieme this ruby script as a gist che dovrebbe funzionare con qualsiasi recente/installazione Homebrew Mac OS X.
  • Sei fondamentalmente sul fare affidamento sulle librerie di Homebrew invece che su quelle obsolete di Apple. Semplice.
  • È possibile configurare e installare con Bundler (anziché gem) passando come argomento bundle.

Controllalo e non esitare a contribuire - forse possiamo ridurlo a uno script per risolverli tutti!

+1

genera un errore, l'ho inviato su github. –

+1

Apprezzo che tu abbia portato questo alla mia attenzione; è stato corretto e dovrebbe funzionare per tutti ora (in aumento). –

+0

Grazie vorrei testarlo di nuovo, ma la radice dei miei errori in quel momento aveva a che fare con la versione di ruby ​​che è stata installata e quindi non posso provarla facilmente adesso! –

0

Ecco cosa ha funzionato per me:

  1. Se non l'hai già fatto, installare gli strumenti di sviluppo Xcode: $ xcode-select --install
  2. Usa homebrew per installare (o reinstallare) libxml2, libxslt e libiconv: $ brew install libxml2 libxslt libiconv
  3. Installare nokogiri: gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv

ho trovato la soluzione che mi serviva in un unmerged pull request per aggiornare i tutorial di Nokogiri. Raccomando che se qualcun altro incontra questo problema e ha esaurito le soluzioni qui, controlla che pull request list verifichi se qualcuno ha inviato un aggiornamento alle istruzioni sulla pagina delle esercitazioni di Nokogiri.

0

Da github page In primo luogo, si dovrebbe: Xcode-selezionare --install e quindi reinstallare nokogiri. Questo ha funzionato per me mentre un altro suggerimento non ha funzionato. Spero che questo aiuti qualcun altro.

Problemi correlati