2014-12-16 16 views
12

Pracuję nad aplikacją szyn umożliwiającą załączniki obrazów do każdego konta użytkowania. Używam spinacza i Amazon Web Services:Nie można zainstalować klejnotu Nokogiri

gem 'paperclip' 
gem 'aws-sdk' 

Kiedy uruchomić pakiet zainstalować, dostaję komunikat:

extconf nie powiodło się, kod wyjścia 1

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.5 for inspection. 
Results logged to /usr/local/rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out 
An error occurred while installing nokogiri (1.6.5), and Bundler cannot continue. 
Make sure that `gem install nokogiri -v '1.6.5'` succeeds before bundling. 

Kiedy spróbuj uruchomić " gem install nokogiri”, otrzymuję komunikat:

extconf nie powiodło się, kod wyjścia 1

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.5 for inspection. 
Results logged to /usr/local/rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out 

Mój OS to Mac OS X 10.9.4 Mavericks. Co tu się dzieje? Jak mogę zainstalować nokogiri i zachowywać się właściwie?

Pełny stos ślad:

Building native extensions with: '--use-system-libraries' 
This could take a while... 
ERROR: Error installing nokogiri: 
    ERROR: Failed to build gem native extension. 

    /usr/local/rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb --use-system-libraries 
checking if the C compiler accepts ... yes 
checking if the C compiler accepts -Wno-error=unused-command-line-argument-hard-error-in-future... yes 
Building nokogiri using system libraries. 
libxml2 version 2.6.21 or later is required! 
*** 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 
    --without-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=/usr/local/rvm/rubies/ruby-2.1.2/bin/ruby 
    --help 
    --clean 
    --use-system-libraries 
    --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-xml2-dir 
    --without-xml2-dir 
    --with-xml2-include 
    --without-xml2-include=${xml2-dir}/include 
    --with-xml2-lib 
    --without-xml2-lib=${xml2-dir}/lib 
    --with-libxml-2.0-config 
    --without-libxml-2.0-config 
    --with-pkg-config 
    --without-pkg-config 
    --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-exslt-dir 
    --without-exslt-dir 
    --with-exslt-include 
    --without-exslt-include=${exslt-dir}/include 
    --with-exslt-lib 
    --without-exslt-lib=${exslt-dir}/lib 
    --with-libexslt-config 
    --without-libexslt-config 

extconf failed, exit code 1 

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.5 for inspection. 
Results logged to /usr/local/rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out 

Odpowiedz

28

To działa jak urok!

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

https://stackoverflow.com/a/24511149

+0

@CarySwoveland Hey Cary! Przykro mi, ale usunąłem pytanie, ponieważ zostało oznaczone jako zamknięte.Twoja odpowiedź jest piękna! To działa jak urok! Dziękuję bardzo, bardzo! :) –

+0

Cieszę się, że pomogłem, Katie. (Skasuję też ten komentarz.) –

+0

Piękny !! Pracowałam jak wdzięk – KrishCdbry

7

Czy próbowałeś gem install nokogiri -v 1.6.5 -- --use-system-libraries Większość błędów Nokogiri mają do czynienia z libxml2, libxslt lub libiconv config?.

Nokogiri docs powinien udzielić dalszych instrukcji. Jeśli rozwiązanie nie działa, możesz opublikować pełny ślad stosu, aby inni mogli pomóc więcej.

+1

rację, trzeba zainstalować libxml2 :) , najpierw uruchom 'brew install libxml2', a następnie spróbuj ponownie. Jeśli pojawi się błąd z libxslt i libiconv to zrób to samo – kasperite

+0

Dzięki, spróbowałem tego, ale nie działało, to ciągle mówi mi, że libxml2 jest już zainstalowane, zobacz moją odpowiedź –

+0

Naprawdę doceniam, że się tym zajmiesz !! :)) –

1

Ponieważ PO została przedstawieniu bundle install które zdarzyło mi się używać, a także myślę, że warto zwrócić uwagę na Installing Nokogiri stronę, która ostatecznie ujawnił najbardziej eleganckie rozwiązanie (który pracował dla mnie również na Mac OS X 10.8.5):

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

instruuje Ten Bundler zainstalować nokogiri jak w odpowiedziach @kasperite

1

Zgodnie z instrukcją instalacji Nokogiri instalowania

sudo apt-get install zlib1g-dev

rozwiązać ten problem dla mnie.

+0

'zlib1g-dev jest już najnowszą wersją. 0 ulepszone, 0 nowo zainstalowane, 0 do usunięcia i 8 nie uaktualnione. " – nelsonic

+0

Dla mnie i dla Ubuntu 16.04. –

1

pakiet, który to zrobił:

apt-get install libghc-zlib-dev 

Inny możliwy kandydat:

zlib1g-dev na 12,04

znalazł here

3

po uaktualnieniu do Rails 4.2.4 (która inculdes Nokogiri 1.6.6.2) w systemie Ubuntu 14.04 (używam RVM) Musiałem to zrobić:

sudo apt-get install libgmp-dev 

lub

sudo apt-get install libgmp3-dev 
+0

Próbowałem tak mocno i zainstalowałem prawie wszystkie biblioteki 10 razy. WRESZCIE "libgmp3-dev" pracował dla mnie. Dzięki. – Anuja

0

nie dostać ten sam komunikat o błędzie, jak ty, ale chciałem zwrócić uwagę, co w końcu znalazłem jako niezwykle proste rozwiązanie instalowania nokogiri na Ubuntu:

Okazuje się, że proces budowania nokogiri zależy patch.

Run: sudo apt-get install patch

pracowałem na maszynie wirtualnej (Włóczęga ramką, faktycznie), dlatego nie mają już patch zainstalowany.

Błąd mam (po wiele innych rzeczy, które wyglądały jak błąd, ale był faktycznie tylko ostrzeżenie) była następująca:

Extracting libxml2-2.9.2.tar.gz into tmp/x86_64-pc-linux-gnu/ports/libxml2/2.9.2... OK 
Running patch with /var/lib/gems/1.9.1/gems/nokogiri-1.6.6.2/ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch... 
Running 'patch' for libxml2 2.9.2... ERROR, review '/var/lib/gems/1.9.1/gems/nokogiri-1.6.6.2/ext/nokogiri/tmp/x86_64-pc-linux-gnu/ports/libxml2/2.9.2/patch.log' to see what happened. 

Usunąłem dziennik teraz (wyżej było w moim sesja terminalowa), ale wymieniony wyżej plik patch.log był absurdalnie prosty; po prostu powiedział coś w rodzaju patch not found.

Chłopcze, czuję się głupio, bo wszystkie kopie robiłem instalując biblioteki, próbując to naprawić! :)

0

zainstalować gcc pierwszy

w * Buntu: apt-get install gcc

po tym u może requer większość bibliotekami dev takich jak libxml2/zlib/itp zobaczyć zbudować log (ścieżka w moim przypadku): /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/nokogiri-1.6.8.1/mkmf.log dla łańcucha jak - błąd krytyczny: zlib.h: Nie taki plik lub katalog

2

Rozwiązałem to, instalując zależności Xcode, które Nokogiri musi być zainstalowany:

xcode-select --install 

Po tym uruchom ponownie pakiet i powinien działać.

2

Na Ubuntu, spróbuj zainstalować następujące zależności:

sudo apt-get install gcc ruby-dev libxslt-dev libxml2-dev zlib1g-dev 
0

wziąć od dylanjhunt's awesome answer on Github, na wypadek gdyby ktoś nie próbował,

Just to add to this, I was having a very similar issue that was resolved by updating dev tools.

xcode-select --install

Hoping someone sees this that had not tried doing this yet and it helps.

Powiązane problemy