Próbuję zainstalować następujące wersje klejnotów na Mavericks
- libv8 (3.16.14.3)
- therubyracer (0.12.1)
Oczywiście therubyracer gems zależy od libv8.
1) Instalowanie libv8
Co to jest libv8? Moje badania wydają się wskazywać, że jest to jakaś biblioteka javascript używana przez Google Chrome?
Miałem problem z instalacją, ale ten wspaniały post zawierał zarówno mój błąd, jak i dobrze wyjaśnioną odpowiedź, jak go ominąć.
Więc zainstalowałem libv8
z
gem install libv8 -- --with-system-v8
Rozumiem, że to instaluje klejnot, ale używa mojej lokalnej instalacji systemu biblioteki v8 zamiast ... wersji, która jest dostarczana z klejnotem? Tak czy inaczej, udało się.
2) Instalacja śruby do rozrusznika
Podczas następnego kroku miałem problem z instalacją therubyracer
gem. Nie jestem do końca pewien, co robi ten klejnot, tylko, że jest to zależność projektu railsowego, do którego próbuję bundle install
.
Daje mi następujący błąd:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/jeeves.butler/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
checking for main() in -lpthread... yes
checking for main() in -lobjc... yes
checking for v8.h... no
*** 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/jeeves.butler/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
--with-pthreadlib
--without-pthreadlib
--with-objclib
--without-objclib
--enable-debug
--disable-debug
--with-v8-dir
--without-v8-dir
--with-v8-include
--without-v8-include=${v8-dir}/include
--with-v8-lib
--without-v8-lib=${v8-dir}/lib
/Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in
'configure': You have chosen to use the version of V8 found
on your system (Libv8::Location::System::NotFoundError)
and *not* the one that is bundled with the libv8 rubygem. However,
it could not be located. please make sure you have a version of
v8 that is compatible with 3.16.14.3 installed. You may
need to special --with-v8-dir options if it is in a non-standard
location
thanks,
The Mgmt
from /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/libv8-3.16.14.3/lib/libv8.rb:7:in `configure_makefile'
from extconf.rb:32:in `<main>'
extconf failed, exit code 1
Gem files will remain installed in /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/therubyracer-0.12.1 for inspection.
Results logged to /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/extensions/x86_64-darwin-13/1.9.1/therubyracer-0.12.1/gem_make.out
Z tego, libv8
co udało mi się zebrać, zdecydowałem się zainstalować przy użyciu mojej lokalnej biblioteki V8 zamiast tego, co zostało dostarczone libv8
, ale teraz nie można zlokalizować lokalnej instalacji.
- Jak sprawdzić, czy rzeczywiście mam zainstalowaną wersję V8 i jak ją zlokalizować?
- Wypróbowałem kilka z określonych flag, żadna z nich nie wskazywała klejnotu na właściwy katalog instalacyjny
- To może być osobny temat, ale co nim jest
extconf.rb
? Widziałem to w kilku miejscach. A cogcc
konkretnie próbuje zrobić z kompilatorem?
Dzięki!!
EDYTOWAĆ:
Wypróbowałem to rozwiązanie polegające na odinstalowaniu libv8 i ponownej instalacji przez
brew install
. Wspomniano o tym również w kilku podobnych pytaniach. Brak szczęścia.Próbowałem również
CC
,CXX
iCPP
zmiennych środowiskowych, jak opisano tutaj , chociaż nie sądzę, że ma żadnego wpływu, gdyż została już podnosząc mójgcc v4.6
kompilatora.