2011-12-06 8 views
5

Mam problem, który utknął mi przez półtora dnia i chciałbym uzyskać pomoc.upgrade do osx lwa, bundler dostaje błędy rozszerzenia natywnego - brak takiego pliku lub katalogu

Przenosiłem moją ostatnią aplikację rails 3 między moim komputerem iMac i moim komputerem Macbook Pro, z prostą kopią i do tej pory nie miałem żadnych problemów.

fyi, używam rvm do zarządzania moimi wersjami projektu.

Dostałem nowy iMac z zainstalowanym lwem i wszystko wyglądało dobrze, dopóki nie uruchomiłem aktualizacji pakietu. Odtąd nie byłem w stanie zmusić bundlera do działania. Problemy pojawiają się podczas budowania natywnego rozszerzenia gem.

Po uruchomieniu aktualizacji pakietu nic nie działa na moim komputerze iMac (osx lion). Mogę kontynuować aktualizację pakietu na moim laptopie (Snow Leopard).

Chciałbym móc dalej rozwijać się na mojej maszynie Lion. Oto, co zrobiłem do tej pory:

Początkowo mam pewne błędy dotyczące moich kompilatorów, ale od czasu ponownego zainstalowania xcode i uruchomienia instalatora, nie mam już tych błędów.

Nadal nadal dostaję błędy w mojej kompilacji nokogiri. W pewnym momencie po kilka instrukcji na blogu (a nie:

sudo port upgrade --enforce-variants libxml2 +universal 

ale wydawało się nie mieć znaczenia dla Nokogiri budowy

Teraz kiedy zrobić aktualizację Bundle Dostaję.

Installing nokogiri (1.5.0) with native extensions /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) 

     /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb 
checking for libxml/parser.h... yes 
checking for libxslt/xslt.h... yes 
checking for libexslt/exslt.h... yes 
checking for iconv_open() in iconv.h... no 
checking for iconv_open() in -liconv... yes 
checking for xmlParseDoc() in -lxml2... yes 
checking for xsltParseStylesheetDoc() in -lxslt... yes 
checking for exsltFuncRegister() in -lexslt... yes 
checking for xmlHasFeature()... yes 
checking for xmlFirstElementChild()... yes 
checking for xmlRelaxNGSetParserStructuredErrors()... yes 
checking for xmlRelaxNGSetParserStructuredErrors()... yes 
checking for xmlRelaxNGSetValidStructuredErrors()... yes 
checking for xmlSchemaSetValidStructuredErrors()... yes 
checking for xmlSchemaSetParserStructuredErrors()... yes 
creating Makefile 

make 
gcc-4.2 -I. -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/x86_64-darwin10.6.0 -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/ruby/backward -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1 -I. -DHAVE_XMLHASFEATURE -DHAVE_XMLFIRSTELEMENTCHILD -DHAVE_XMLRELAXNGSETPARSERSTRUCTUREDERRORS -DHAVE_XMLRELAXNGSETPARSERSTRUCTUREDERRORS -DHAVE_XMLRELAXNGSETVALIDSTRUCTUREDERRORS -DHAVE_XMLSCHEMASETVALIDSTRUCTUREDERRORS -DHAVE_XMLSCHEMASETPARSERSTRUCTUREDERRORS -I/opt/local/include/libxml2 -I/usr/local/include/libxml2 -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/libxml2 -I/opt/local/include -I/usr/local/include -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include -I/usr/include -I/usr/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -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 -o html_document.o -c html_document.c 
make: gcc-4.2: No such file or directory 
make: *** [html_document.o] Error 1 


Gem files will remain installed in /Users/tayloredwebsites/.rvm/gems/[email protected]/gems/nokogiri-1.5.0 for inspection. 

Po wykonaniu tej czynności waaaay zbyt wiele razy, postanowiłem usunąć kapibary i lanuchy z mojego Gemfile, tak, że chciałbym ominąć ten błąd. i oto, wiązka zmiana daje mi jeszcze brak Bui ld rodem rozszerzenie:

Installing sqlite3 (1.3.5) with native extensions /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) 

     /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb 
checking for sqlite3.h... yes 
checking for sqlite3_libversion_number() in -lsqlite3... yes 
checking for rb_proc_arity()... yes 
checking for sqlite3_initialize()... yes 
checking for sqlite3_backup_init()... yes 
checking for sqlite3_column_database_name()... no 
checking for sqlite3_enable_load_extension()... no 
checking for sqlite3_load_extension()... no 
creating Makefile 

make 
gcc-4.2 -I. -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/x86_64-darwin10.6.0 -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/ruby/backward -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1 -I. -DHAVE_RB_PROC_ARITY -DHAVE_SQLITE3_INITIALIZE -DHAVE_SQLITE3_BACKUP_INIT -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -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 -o backup.o -c backup.c 
make: gcc-4.2: No such file or directory 
make: *** [backup.o] Error 1 

Wygląda więc na to, że ja dostaję żadnego takiego błędu plik na tym opiera się na tym samym zestawie kodu, z podstawową różnicą, że jedna maszyna jest na lwa, a druga jest na Snow Leopard.

Więc może ktoś może mi pomóc z tymi pytaniami:

W moich badaniach, zauważyłem, że w Nokogiri budowy, libxml2 jest proszony w 3 miejscach (dwa z którym nie istnieje !!! !). Czy ktoś wie jak kontrolować te argumenty, aby usunąć te, które nie istnieją?

Kiedy patrzyłem na kompilację sqlite3, nie zauważyłem żadnych brakujących plików, ale wciąż je dostaję. Czy to możliwe, że zostanie to zawieszone z problemu nokogiri? Jeśli tak, to czy ktoś wie, jak mogę je usunąć?

Chciałbym wiedzieć, jakiego pliku brakuje i nie mogę znaleźć go w komunikacie o błędzie. Czy jest jakiś sposób, aby uzyskać szczegóły debugera z aktualizacji pakietu?

również zauważyłem, że w make katalog include zawiera katalog o nazwie ze starszą wersją ruby. Tak było przez jakiś czas, bez żadnych problemów, więc podejrzewam, że nie będzie to problemem, ale chciałem to wskazać.

Odpowiedz

1

Zainstalowałem wszystko na moim OSX Lion. Uaktualniłem system do serwera, aby uniknąć problemów z postgres. Uwaga, kiedy zainstalowałem rvm, jeden z kroków ma zostać uruchomiony;

$ rvm requirements

która zwraca między innymi:

Xcode 4.2: * is only supported by ruby 1.9.3+ using command line flag: --with-gcc=clang * it breaks gems with native extensions, especially DB drivers.

Xcode 4.2.1+ users - please be warned - in case of any compilation issues * downgrade to Xcode 4.1 * uninstall Xcode and install osx-gcc-installer and reinstall your rubies.

Uwaga: Jeśli odinstalować Xcode, tracisz standardową konfigurację MacPort Xcode.

Uwaga: możesz budować MacPorty ze źródeł używając gcc - nie testowany (przynajmniej na razie).

6

Nie istnieje dosłownie żaden taki plik lub katalog gcc-4.2 na Lion. Utknąłem na tym, próbując zainstalować "rvm install ruby-1.9.3", co nie powiodło się, podobnie jak w raporcie. Naprawiono polecenie CC, takie jak "CC = gcc rvm install ruby-1.9.3". Jeśli opcji CC = gcc nie można przekazać do bundler, może być prostsze do "sudo ln -s/usr/bin/gcc /usr/bin/gcc-4.2" i po prostu utworzyć szukane dowiązanie symboliczne.

+1

lepiej byłoby zainstalować gcc-4.2 za pomocą tego pakietu https://github.com/kennethreitz/osx-gcc-installer – mobileAgent

+0

nie zrobiłem powyższy pakiet, bo wygląda na to, że zastępuje Xcode! –

+0

Teraz, gdy mam gcc wskazujące na llvm-gcc-4.2, otrzymuję configure: error: C preprocesor "/usr/bin/cpp-4.2" nie sprawdza poprawności (poprzednio ustawiałem cc, gcc C++ itd. wskazują na wersje llvm). –

0

Zbudowałem mój ruby-1.9.3 z klangiem, więc podczas instalacji klejnotu nokogiri użyłem CC = clang gem install nokogiri -v '1.5.5' który pracował dla mnie.

Powiązane problemy