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?
Odpowiedzi:
Możesz także zainstalować Nokogiri na Mac OS X 10.9 Mavericks z pełną instalacją XCode za pomocą:
Aktualizacja
Dla osób korzystających z Yosemite zadziała następujące polecenie:
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:
Aktualizacja
Dla osób używających Sierra zadziała następujące polecenie:
źródło
--use-system-libraries
aby 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
gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Po przejrzeniu tutaj animowanych GIF-ów wszystko, co musiałem zrobić, to po prostu
xcode-select --install
igem install nokogiri
działało dobrze.źródło
Znalazłem ten dziennik i zobaczyłem, że nie znaleziono gcc-4.2:
Aby rozwiązać ten problem, zainstalowałem apple-gcc42 za pomocą homebrew
brew install apple-gcc42
i 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
źródło
brew install apple-gcc42
... i po prostu działa. To polecenie nie działa dla Ciebie?xcode-select --install
przed instalacją naparu i teraz wszystko działa.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
aby skonfigurować komputer do korzystania z narzędzi wiersza poleceń Xcode 5.0.X, a następnie uruchom
Jeśli chcesz zresetować narzędzia wiersza poleceń do wersji Xcode.app po uruchomieniu
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:
źródło
Oto, co zadziałało dla mnie na OSX Mavericks:
źródło
sudo
z 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życiesudo
spowodował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.Jestem na OSX Mavericks i mój problem okazał się złą instalacją Rubiego.
Więc przeinstalowałem Ruby z rvm:
Byłem wtedy w stanie
Problem rozwiązany.
źródło
Zwykle lubię trzymać się rzeczy dostarczonych przez system. To zadziałało dla mnie:
źródło
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.źródło
Miałem ten problem dzisiaj, na Maverick, w ten sposób rozwiązałem problem:
Upewnij się, że znasz wersję libiconv w kopalni Cellar poniżej 1.14, a następnie zainstaluj jak poniżej:
Jeśli potrzebujesz określonej wersji nokogiri, np. -V '1.6.2.1', zainstaluj jako:
Nokogiri zostało pomyślnie zainstalowane!
źródło
To jest to samo, co post @ thomas_witt, ale działa na Mac OS X Sierra:
źródło
Aby instalacja działała, musiałem zmodyfikować ścieżki plików w
gem install
poleceniu, 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:źródło
W przypadku osób korzystających z MacPorts upewnij się, że zainstalowałeś
libxml2
za pośrednictwemMacPorts
. Następnie wpisz:To powinno załatwić sprawę, działało dla mnie bez używania pełnych ścieżek.
źródło
Użyj,
brew install libxml2 libxslt
jeśli używasz Homebrew.źródło
Oto kolejne odniesienie:
Wystąpił błąd podczas instalacji nokogiri
taki błąd:
Najpierw musisz zainstalować narzędzia programistyczne.
wtedy prawdopodobnie potrzebujesz:
lub jeśli masz błąd, taki jak
Po prostu naprawiam ścieżkę lib przez:
do pakietu potrzeba czegoś takiego:
źródło
To działa dla mnie
Po prostu uruchom poniżej dwóch poleceń
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
To działa dla mnie z powyższym środowiskiem.
źródło
Napotkałem ten sam problem w przypadku Mavrick, a rozwiązanie było:
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.
źródło
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.
źródło
W moim przypadku, po dowiązaniu symbolicznym musiałem uruchomić /usr/bin/gcc-4.2. Musisz zaakceptować umowę licencyjną, w przeciwnym razie się zawiesi.
źródło
Komunikat o błędzie daje wskazówkę tutaj:
The compiler failed to generate an executable file. (RuntimeError)
Konieczne może być również zainstalowanie i połączenie tych elementów:
źródło
źródło
U mnie błąd polegał na tym, że ten gcc (4.2.1, zainstalowany z Homebrew) narzekał, że:
Rozwiązałem problem, wymuszając tylko x86_64:
źródło
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 install
natychmiast zainstalowałem Nokogiri.źródło
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:
źródło
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.
Więc jeśli używasz Rubiego 1.9.3, użyj go w ten sposób
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.
Więc jeśli używasz Rubiego 1.9.3, użyj go w ten sposób
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.
źródło
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:
Mam nadzieję, że to pomoże.
źródło
Ja też miałem ten problem. Uruchomienie
brew doctor
pokazało, że mam nieoczekiwaną wersję libiconv w / user / local / lib.Więc usunąłem je i ponownie napisałem libxml:
Wreszcie zainstalowałem nokogiri:
źródło
Ż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.źródło
sudo
spowoduje, ż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żywaniesudo
mogł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 .w systemie Windows możesz również spróbować instalacji lokalnej:
pobierz odpowiedni klejnot na podstawie twojego środowiska.
przejdź do katalogu, w którym zapisałeś plik gem.
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.
źródło
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):
Powodzenia. Brawo za #yakshaving!
źródło
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:
źródło