2014-05-01 12 views
6

Install zawiedzie pokazując:Nokogiri gem nie trafia do zainstalowania w 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. 

Jednak patrząc na mkmf.log Nokogiri jest pokazane są następujące błędy:

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 

Mam Xcode i to zainstalowane narzędzia poleceń. Mój ~/.bash_profile ma 64-bitową kompilację wymuszoną przez: export ARCHFLAGS = "- arch x86_64"

Mam libxml2, libxslt i libiconv zainstalowane przez Homebrew, a każdy z nich jest połączony. Próbowałem zainstalować wszystkie te bez ARCHFLAG w .bash_profile.

Mam również napar zainstalować apple-gcc42 i połączone, jak na to, jak znalazłem.

Próbowałem zainstalować nokogiri przekazując ścieżki do bibliotek libxml2, libxslt i libiconv w/usr/local/Cellar /, ale instalacja nadal kończy się niepowodzeniem, z tymi samymi błędami jak powyżej.

Zmarnowałem co najmniej jeden dzień - po prostu próbowałem zainstalować klejnot Ruby. Naprawdę chciałbym wrócić do rozwoju.

Czy ktoś może pomóc?

Odpowiedz

21

Ustawienie NOKOGIRI_USE_SYSTEM_LIBRARIES=1 przed faktycznym zainstalowaniem klejnot zrobił mi lewę.

Podsumowując:

  • Jeśli wcześniej zainstalowany, odinstaluj GEM:
    $ gem uninstall nokogiri

  • Używaj Homebrew zainstalować libxml2, libxslt i libiconv razie potrzeby:
    $ brew install libxml2 libxslt libiconv

  • Install klejnot określić ng ścieżki do bibliotek być połączone przed:
    $ 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 klej instalacji nokogiri' był wystarczający, aby zainstalować to dla mnie. Naprawdę należy to naprawić, instalacje nie powinny być tak trudne. Używam prawdziwych piły nokogiri, takich jak piły dozuki i używanie ich do cięcia jaskółek to nie jest problem. –

+0

+1 za to rozwiązanie, pracował też dla mnie (oficjalny tutorial nie), jednak tutaj jest link: http://nokogiri.org/tutorials/installing_nokogiri.html – herrjeh42

+0

To działało dla mnie. –

0
  • Sprawdź, czy jest prawidłowo zainstalowana homebrew z odpowiednich narzędzi wiersza poleceń Xcode.

napar lekarz

  • Można również sprawdzić poprzez Xcode> Preferencje

Z ważnych narzędzi wiersza poleceń zainstalowanych, udało mi się rozwiązać Nokogiri Wystąpił błąd po uaktualnić OSX Maverick.

Zauważyliśmy również, że niektóre pakiety "brew" były nieaktualne po uaktualnieniu systemu OS X Mountain Lion do Maverick. (na przykład.qt, PostgreSQL)

2
  • W samowystarczalnego rozwiązania, jakie zebrała this ruby script as a gist który powinien działać z każdym ostatnim Mac OS X/instalacji Homebrew.
  • W zasadzie polegasz tylko na bibliotekach Homebrew zamiast na przestarzałych Apple. Prosty.
  • Można skonfigurować i zainstalować za pomocą programu Bundler (zamiast gem), przekazując bundle jako argument.

Sprawdź i pomóż nam - może uda nam się doprowadzić to do jednego scenariusza, aby naprawić je wszystkie!

+1

Skrypt zgłasza błąd, przesłałem go na github. –

+1

Doceniam, że zwracam na to uwagę; zostało to naprawione i powinno teraz działać dla wszystkich (wznowione). –

+0

Chciałbym przetestować to jeszcze raz, ale źródłem moich błędów w tym czasie było zrobić z wersją ruby, która została zainstalowana, więc nie mogę tego teraz łatwo wypróbować! –

0

Oto co pracował dla mnie:

  1. Jeśli nie zostało to jeszcze zrobione, należy zainstalować narzędzia XCode autorów: $ xcode-select --install
  2. Zastosowanie homebrew, aby zainstalować (lub ponownie) libxml2, libxslt i libiconv: $ brew install libxml2 libxslt libiconv
  3. Install nokogiri: gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv

znalazłem rozwiązanie, co potrzebne w unmerged pull request zaktualizować samouczki Nokogiri. Polecam, jeśli ktoś inny napotka ten problem i wyczerpał rozwiązania tutaj, sprawdź, czy pull request list sprawdza, czy ktoś przesłał aktualizację instrukcji na stronie samouczków Nokogiri.

0

Od github page pierwsze, należy: Xcode-wybierz --install a następnie ponownie zainstalować Nokogiri. To działało dla mnie, podczas gdy inna sugestia nie. Mam nadzieję, że to pomoże komuś innemu.

Powiązane problemy