Błąd podczas instalacji Nokogiri na OSX 10.9 Maverick?


109

Zaktualizowałem OSX (Lion) do Mavericks i nie mogę zainstalować Nokogiri dla moich projektów.

Już zainstalowałem XCode 5.0.1, narzędzia wiersza poleceń (używając xcode-select --install) i już zainstalowałem libxml2 z Homebrew i nadal mam problemy.

Błąd:

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.

Zainstalowałem libxml2, libxslt i libiconv z Homebrew i ustawiłem parametry, aby zainstalować Nokogiri, ale też nie działają.

Nie mogę znaleźć tego, co jest nie tak w moim otoczeniu, czy możesz mi pomóc?



2
Spróbuj otworzyć xcode i zaakceptuj umowę EULA / licencję.
moander

Odpowiedzi:


245

Możesz także zainstalować Nokogiri na Mac OS X 10.9 Mavericks z pełną instalacją XCode za pomocą:

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

Aktualizacja

Dla osób korzystających z Yosemite zadziała następujące polecenie:

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

lub może faktycznie znajdować się w twoim MacOSX10.11.sdk folderze (mój był na 18 września 2015 r.) Tak czy inaczej, więc nawet jeśli nie jesteś jeszcze w pełni na El Capitan, niedawno zaktualizowałem XCode i być może będziesz musiał użyć El Capitan SDK ścieżka, która następuje dalej:

Aktualizacja

Dla osób używających El Capitan zadziała następujące polecenie:

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

Aktualizacja

Dla osób używających Sierra zadziała następujące polecenie:

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
Nie dla mnie: „Brak biblioteki libxml2. Odwiedź stronę nokogiri.org/tutorials/installing_nokogiri.html, aby uzyskać pomoc dotyczącą instalowania zależności”. Nadal pojawia się ten sam błąd.
Pop-A-Stash

1
Musiał dodać --use-system-libraries. Następnie pracował nad zupełnie nową instalacją Mavericks z Xcode 5.1.1 i brew.
jmg,

11
Musiałem dodać, --use-system-librariesaby to zadziałało: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
To jest jedyny, który działałby dla mnie w 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
Możesz zaktualizować swoją odpowiedź za pomocą bardziej ogólnego polecenia, które powinno działać we wszystkich wersjach OS X i ścieżkach instalacji Xcode:gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Philipp


20

Znalazłem ten dziennik i zobaczyłem, że nie znaleziono gcc-4.2:

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 */

Aby rozwiązać ten problem, zainstalowałem apple-gcc42 za pomocą homebrew brew install apple-gcc42i utworzyłem dowiązanie symboliczne do mojego / usr / bin:

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


to nie rozwiązało problemu, nadal mam ten sam komunikat o błędzie :(
David Portabella

1
Całkowicie odinstalowałem rvm i ruby ​​(z brew), zainstalowałem ponownie i zadziałało.
David Portabella

3
Więc po prostu biegam brew install apple-gcc42... i po prostu działa. To polecenie nie działa dla Ciebie?
squiter

4
Pobiegłem xcode-select --installprzed instalacją naparu i teraz wszystko działa.
Quickredfox

1
@LucyBain Naprawdę nie pamiętam .... ale myślę, że ten plik dziennika był w tym samym katalogu co gem_meake.out ...
squiter

15

Jeśli używasz Xcode 5.1, narzędzia wiersza poleceń nie działają dla nokogiri 1.6.1. Musisz pobrać narzędzia z końca października 2013 od Apple . Kiedy już to zrobisz, biegnij

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

aby skonfigurować komputer do korzystania z narzędzi wiersza poleceń Xcode 5.0.X, a następnie uruchom

gem install nokogiri

Jeśli chcesz zresetować narzędzia wiersza poleceń do wersji Xcode.app po uruchomieniu

sudo xcode-select -r

Lub inną rzeczą, którą możesz zrobić, jest dodanie flagi, aby zignorować nieznane argumenty wiersza poleceń. Następnie instalacja wygląda następująco:

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

12

Oto, co zadziałało dla mnie na 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

o dziwo, to jedyna rzecz w całym bieżniku, która mi pomogła. dzięki!
KonstantinK

Problem polega na tym, że używanie sudoz RVM lub rbenv spowoduje problemy, ponieważ root nie wie, gdzie mieszkają Rubiny w piaskownicy. Jest to omówione na stronie instalacji RVM . OP korzysta z RVM, a użycie sudospowodowałoby zainstalowanie Nokogiri w Ruby Apple, a nie użytkownika. Więc nie rób tego, chyba że jesteś NA PEWNO, że chcesz zainstalować w Rubim firmy Apple, jeśli używasz systemu Mac OS, lub w systemie Ruby, jeśli korzystasz z innego * nix.
Tin Man

10

Jestem na OSX Mavericks i mój problem okazał się złą instalacją Rubiego.

Więc przeinstalowałem Ruby z rvm:

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

Byłem wtedy w stanie

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

Problem rozwiązany.


Chłodny. Teraz, gdy używasz rvm na mavericks, spróbuj otworzyć vim. Błąd SEGV? Śliczny.
Tim

Nie mogłem usunąć zestawu gemset, ponieważ foldery nie były puste, ale ponowna instalacja zestawu gemset (mimo że wystąpiły błędy) tak! To jedyna rzecz, która zadziałała dla mnie!
Onikoroshi

9

Zwykle lubię trzymać się rzeczy dostarczonych przez system. To zadziałało dla mnie:

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/

po googlowaniu przez wiele godzin to było jedyne rozwiązanie, które działało dla mnie, dzięki! : D
Rogerio Chaves

5

Natknąłem się na ten problem natychmiast po zainstalowaniu aktualizacji Mavericks 10.9.5 i aktualizacji narzędzi programistycznych 10.9 firmy Apple. Biegałem xcode-select --install, ale to nie rozwiązało problemu. Następnie otworzyłem XCode, zaakceptowałem eula i opuściłem XCode. To rozwiązało problem.


3

Miałem ten problem dzisiaj, na Maverick, w ten sposób rozwiązałem problem:

brew update
brew install libiconv
brew link libiconv

Upewnij się, że znasz wersję libiconv w kopalni Cellar poniżej 1.14, a następnie zainstaluj jak poniżej:

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

Jeśli potrzebujesz określonej wersji nokogiri, np. -V '1.6.2.1', zainstaluj jako:

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

Nokogiri zostało pomyślnie zainstalowane!


Pracował też dla mnie w Yosemite. Żadna z powyższych odpowiedzi nie odpowiadała.
MattL

3

To jest to samo, co post @ thomas_witt, ale działa na 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

Aby instalacja działała, musiałem zmodyfikować ścieżki plików w gem installpoleceniu, aby pasowały do ​​tych w moim systemie. Mam różne wersje libxml2 i libiconv oraz nieco inną strukturę plików. Polecenie z moimi modyfikacjami to:

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

Musiałem bardzo skrupulatnie obchodzić się z ścieżkami plików. Prawidłowe skonstruowanie poleceń zajęło mi wiele prób.
darkmoves

Oto łącze do innego rozwiązania problemu z nieprawidłową wersją biblioteki libxml.
darkmoves

2

W przypadku osób korzystających z MacPorts upewnij się, że zainstalowałeś libxml2za pośrednictwem MacPorts. Następnie wpisz:

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

To powinno załatwić sprawę, działało dla mnie bez używania pełnych ścieżek.



2

Oto kolejne odniesienie:

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]

Wystąpił błąd podczas instalacji nokogiri

taki błąd:

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

Najpierw musisz zainstalować narzędzia programistyczne.

wtedy prawdopodobnie potrzebujesz:

$ xcode-select --install

lub jeśli masz błąd, taki jak

checking for libxml/parser.h... no

Po prostu naprawiam ścieżkę lib przez:

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/

do pakietu potrzeba czegoś takiego:

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

To działa dla mnie

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

Po prostu uruchom poniżej dwóch poleceń

$ xcode-select --install

Poprosi Cię o pobranie, powiedz „tak”, a następnie poprosi o zainstalowanie komponentu xcode kliknij zainstaluj.

Teraz spróbuj zainstalować klejnot za pomocą poniższego polecenia

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

To działa dla mnie z powyższym środowiskiem.


1

Napotkałem ten sam problem w przypadku Mavrick, a rozwiązanie było:

xcode-select --install

Jednak to nie działa, ponieważ strona pobierania Apple dla narzędzia wiersza polecenia nie ma teraz tego instalatora dostępnego publicznie.

Tak więc, jeśli chcesz mieć narzędzia wiersza poleceń dla Mavricks, musisz mieć płatne konto . Tylko wtedy będziesz mógł go zainstalować. Po zainstalowaniu nie napotkasz tego problemu z Nokogiri.


Nie mam płatnego konta i zainstalowałem narzędzia wiersza poleceń. Zainstalowałem za pomocą terminala, ale mój znajomy zainstalował go za pomocą tej strony pobierania i nie ma też płatnego konta.
squiter

Zgadzam się z Tobą. To samo działo się ze mną do 24 listopada 2013. Jeśli jednak przejdziesz teraz do tej strony i spróbujesz uzyskać do niej dostęp, wyświetli się ten błąd. Dziwne jest to, że logujesz się za pomocą swoich poświadczeń, ale dzięki temu będziesz logować się jako gość. Oto wiadomość, którą otrzymuję na stronie dotyczącej mojego konta: Program dla programistów Apple. Duże ostrzeżenie Nie możemy zrealizować Twojego żądania. Wróć do poprzedniej strony lub zamknij przeglądarkę i spróbuj ponownie. Jeśli potrzebujesz pomocy, skontaktuj się ze Wsparciem Apple Developer.
tajemnica świeci

1

Miałem ten sam błąd przy nowej instalacji Mavericks. Po wygaśnięciu oceny zmieniłem nazwę mojego pakietu aplikacji Xcode na Xcode 5.0.1.app.

Najwyraźniej skrypt instalacyjny Nokogiri nie cytuje swoich ścieżek, więc spacja w nazwie pliku powodowała różnego rodzaju problemy lub problemy. Dopiero gdy spróbowałem brew install libxml2, błąd stał się oczywisty.

Wyciągnięta lekcja: spacje w nazwach plików są złe.


1

W moim przypadku, po dowiązaniu symbolicznym musiałem uruchomić /usr/bin/gcc-4.2. Musisz zaakceptować umowę licencyjną, w przeciwnym razie się zawiesi.


1

Komunikat o błędzie daje wskazówkę tutaj: 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  

Konieczne może być również zainstalowanie i połączenie tych elementów:

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

U mnie błąd polegał na tym, że ten gcc (4.2.1, zainstalowany z Homebrew) narzekał, że:

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

Rozwiązałem problem, wymuszając tylko x86_64:

ARCHFLAGS="-arch x86_64" gem install nokogiri 

1

Po przejściu na Maverick miałem podobny problem. Używam RVM z Ruby 1.9.2-p320 i wypróbowałem kilka podanych tutaj rozwiązań, ale nic nie rozwiązało problemu.

Potem przeszedłem na Ruby 2.1.2 i bundle installnatychmiast zainstalowałem Nokogiri.


1

Jeśli ktoś ma ten problem na el capitan, podczas korzystania z pakietu.

Upewnij się, że narzędzia wiersza poleceń xcode są zainstalowane i uruchom to:

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

Miałem ten sam problem z ostatnich dwóch tygodni, próbując uruchomić aplikację w wersji Rails 3.

Problem polega na tym, że twój rvm / rbenv nie używa kompilatora C.

Użyj tego polecenia dla rvm, aby pobrać kompatybilny kompilator C.

CC=gcc rvm install-version

Więc jeśli używasz Rubiego 1.9.3, użyj go w ten sposób

CC=gcc rvm install-1.9.3

Użyj tego polecenia za każdym razem, gdy nie możesz spakować instalacji lub czegokolwiek. To działa na El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7 Mamy nadzieję, że to rozwiąże problem.

Miałem ten sam problem z ostatnich dwóch tygodni, próbując uruchomić aplikację w wersji Rails 3.

Problem polega na tym, że twój rvm / rbenv nie używa kompilatora C.

Użyj tego polecenia dla rvm, aby pobrać kompatybilny kompilator C.

CC=gcc rvm install-version

Więc jeśli używasz Rubiego 1.9.3, użyj go w ten sposób

CC=gcc rvm install-1.9.3

Użyj tego polecenia za każdym razem, gdy nie możesz spakować instalacji lub czegokolwiek.

To działa na El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7 Mamy nadzieję, że rozwiąże problem. A także, jeśli masz już Xcode, a także nie otrzymujesz tych samych błędów podczas instalowania dowolnego klejnotu, wypróbuj to rozwiązanie.


1

Dodałem swoje ustalenia tutaj po tym, jak natknąłem się na ten sam problem wkrótce po aktualizacji: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/

Rozwiązaniem są po prostu te 2 polecenia:

xcode-select --install
gem install nokogiri

Mam nadzieję, że to pomoże.


5
Proszę opublikować tutaj - linki mogą zostać zerwane (patrz wytyczne)
Justin

Pomogło mi to, chociaż powtarzam sentyment zamieszczania odpowiedzi tutaj, a nie w linku :)
Richard

To właśnie jest uważane za odpowiedź obejmującą tylko łącze, której odradza się w przypadku przepełnienia stosu. Zamiast publikować tylko łącze do własnej witryny, podsumuj również ważne informacje w swojej odpowiedzi. W ten sposób, jeśli łącze gnije, jak to zwykle bywa, odpowiedź będzie nadal zapewniać pewną wartość.
Tin Man

0

Ja też miałem ten problem. Uruchomienie brew doctorpokazało, że mam nieoczekiwaną wersję libiconv w / 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

Więc usunąłem je i ponownie napisałem 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

Wreszcie zainstalowałem nokogiri:

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

Miałem podobny problem (niepołączony libiconv). Odłączyłem libiconv i ponownie zainstalowałem. brew zainstaluj libiconv, a następnie gem install nokogirl.
Ben

0

Żadna z tych odpowiedzi nie zadziałała w moim konkretnym przypadku, a ponieważ jestem nowicjuszem, pomyślałem, że moje rozwiązanie może pomóc komuś innemu.

Używam Yosemite i używam Ruby 1.9.3p547. Wystąpiło zagrożenie bezpieczeństwa dla p547, więc próbowałem zaktualizować Ruby do wersji 1.9.3p550 lub nowszej. Użyłem RVM, a następnie próbowałem przenieść moje klejnoty i wiele z nich nie poszło. Następnie próbowałem zainstalować pakiet, ale to się nie udało i pomyślałem, że może to być konflikt między różnymi ścieżkami i zależnościami, więc usunąłem starszą wersję Rubiego. To wszystko zepsuło.

Ciągle otrzymywałem komunikat z informacją, że brakuje kompilatora C, mimo że pobrałem XCode i niedawno zaktualizowałem narzędzia CLI. Znalazłem inną witrynę, która poleciła mi pobrać GCC innej firmy, co zrobiłem. co pogorszyło wszystko.

Teraz pojawia się komunikat, że muszę naprawić moje profile i PATH lub po prostu może być łatwiej ponownie zainstalować OSX. Więc zrobiłem.

W każdym razie, dłuższa historia, po prostu długa: rozwiązaniem, które w końcu zadziałało, było pozbycie się RVM i po prostu użycie naparu do pobrania wersji Ruby, którą chciałem, przed uruchomieniem bundle install. Zainstaluj poprawną wersję Nokogiri FIRST.

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

Użycie sudospowoduje, że Nokogiri zostanie zainstalowany w jedynym Rubim znanym przez roota, który jest najprawdopodobniej zainstalowany przez Apple Ruby, chyba że użyjesz Homebrew. Ponieważ OP korzystał z RVM, oznacza to, że Nokogiri nie byłby widoczny dla Rubiego zarządzanego przez RVM i tylko pogłębiłby problem. Używanie sudomogło zadziałać w tym przypadku, ale nie powinno być próbowane z Rubim zarządzanym przez RVM lub rbenv. RVM wyraźnie mówi, aby tego nie robić w dokumentacji instalacji .
Tin Man

0

w systemie Windows możesz również spróbować instalacji lokalnej:

  1. pobierz odpowiedni klejnot na podstawie twojego środowiska.

  2. przejdź do katalogu, w którym zapisałeś plik gem.

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

jeśli nie zadziała, możesz sprawdzić, czy masz zainstalowane zlib i mingw lub właściwy kompilator c.


0

Każda cholerna rzecz tutaj nie zrobiła tego za mnie (nie wdałem się w ponowne instalacje naparu, oy), ale w końcu tak się stało (znalezione w raporcie o błędzie w jakimś niepowiązanym projekcie):

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

Powodzenia. Brawo za #yakshaving!


-3

Sprawdź wersję narzędzi wiersza poleceń. Skonfiguruj swój komputer do korzystania z narzędzi wiersza poleceń Xcode 5.0.X, a następnie uruchom:

gem install nokogiri

powinieneś użyć tego polecenia. otwórz terminal. i napisz to polecenie. eksport NOKOGIRI_USE_SYSTEM_LIBRARIES = true
Durul Dalkanat
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.