La gemma Nokogiri non si installa in OS X Mavericks

1

Installazione fallita che mostra:

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 il mkmf.log di nokogiri, vengono visualizzati i seguenti errori:

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 e sono installati gli strumenti di comando. Il mio ~ / .bash_profile ha compilazione a 64 bit forzata da: export ARCHFLAGS="- arch x86_64"

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

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

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 prima.

Ho sprecato almeno un giorno su questo - solo cercando di far installare una gemma Ruby. Mi piacerebbe davvero tornare allo sviluppo effettivo.

Qualcuno può aiutarmi?

    
posta user3591456 01.05.2014 - 06:26
fonte

1 risposta

1

Non si può presumere che la versione di ruby integrata in OS X sia compatibile con qualsiasi gemma che si desidera utilizzare. Non provare a rimuovere la versione di ruby fornita con OS X o aggiornarla o aggiornarla a meno che non sia disponibile in App Store / Aggiornamento software / aggiornamento software. La maggior parte dei rubiers ti dirà che non ti preoccupi nemmeno di usare il rubino fornito con OS X. Ma puoi installare più versioni di ruby e avrai sicuramente bisogno di un gestore di versioni di ruby se intendi utilizzare molte gemme.

un tempo, Ruby era abbastanza facile da usare, ma ora il numero di versioni che devono necessariamente essere supportate sono legioni e gli sviluppatori di gemme a volte ti costringono a installare una nuova versione di ruby in qualche altra versione quando hai già un perfetto buona installazione di rubini! Grr. il rubino sta davvero iniziando a infastidire, perché mentre le informazioni di supporto potrebbero essere là fuori, sembra sempre più simile a un mulinello da pesca che ha catturato l'uccello. IMO, il rubino è rotto, qualcuno dovrà tirarlo fuori e farlo rientrare ordinatamente per farlo riparare, e io non sono all'altezza. Non sono il ragazzo. Non io.

Nonostante l'entusiasmo di Brewinistas, il gestore di pacchetti homebrew ha sempre più problemi tipici di una soluzione di gestione dei pacchetti immaturo. Io uso MacPorts per gestire ... tutte le mie installazioni, ma anche le varie versioni di installazioni ruby che sono necessarie per usare le gemme che voglio . MacPorts richiede una versione appropriata di xcode; xcode_5.1.1.dmg è la versione più recente per Mavericks. rvm usa MacPorts di default se è installato.

Appare dai tuoi log forniti che ti mancano cose. Questo è il bello di MacPorts (e di qualsiasi gestore di pacchetti maturi); si prende cura delle dipendenze per te se non sono installate.

Installa MacPort

 curl -Ok https://distfiles.macports.org/MacPorts/MacPorts-2.2.1.tar.bz2

 tar xf MacPorts-2.2.1.tar.bz2

 cd MacPorts-2.2.1

 ./configure

 make

 sudo make install

 cd ..

 rm -rf Macports-*

 sudo /opt/local/bin/port -v selfupdate

aggiungi MacPorts al tuo $ PATH:

 export PATH=/opt/local/bin:/opt/local/sbin:$PATH

dai un'occhiata a ciò che MacPorts ha per ruby

 port search ruby |less

e / o installa semplicemente nokogiri

 sudo port -vsk install ruby19 libxml2 libxslt 

 sudo gem install nokogiri

 port -vfp clean ruby19 libxml2 libxslt

se ci sono problemi, prova

 sudo port upgrade outdated

MacPorts non influenzerà la versione OS X di nulla, né homebrew (eccetto per renderlo superfluo) e mantiene tutto ciò che installa in / opt rendendo la deinstallazione un gioco da ragazzi (ma questo non ha nulla a che fare con dove Ruby mantiene le sue gemme, ~ /.gem). Ma dovresti davvero arrivare a sapere e ad amare MacPorts, è tuo amico.

per disinstallare completamente MacPorts

 sudo port -dfp uninstall --follow-dependencies installed

 sudo port -dfp uninstall all

 sudo rm -rf /opt/local  

 sudo rm -rf /Library/Tcl/macports*
    
risposta data 01.05.2014 - 07:55
fonte

Leggi altre domande sui tag