Ответ 1
Эти шаги сработали для меня.
ОС: Maverick Ruby: 2.1.1
gem uninstall libv8
gem install therubyracer -v '0.11.3'
gem install libv8 -v '3.11.8.13' -- --with-system-v8
Я пытаюсь установить следующие версии gem на Mavericks
Очевидно, что драгоценные камни из тюрбана зависят от libv8.
Что такое libv8? Моя часть исследований, по-видимому, указывает на какую-то библиотеку javascript, используемую Google Chrome?
У меня возникли проблемы с его установкой, но этот отличный пост имел как мою ошибку, так и хорошо объясненный ответ о том, как обойти ее.
Итак, я установил libv8
с помощью
gem install libv8 -- --with-system-v8
Я понимаю, что это устанавливает камень, но использует локальную установку системы библиотеки v8 вместо... версии, которая поставляется с драгоценным камнем? В любом случае, это было успешным.
На следующем шаге у меня возникла проблема с установкой therubyracer
gem. Я не совсем уверен, что делает этот жемчуг, только что это зависимость проекта рельсов, я пытаюсь bundle install
.
Это дает мне следующую ошибку:
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
Из того, что я могу собрать, я решил установить libv8
с помощью моей локальной библиотеки V8 вместо того, что было предоставлено с помощью libv8
, но теперь локальная установка не может быть найдена.
extconf.rb
? Я видел это в нескольких местах. И что он пытается сделать с компилятором gcc
в конкретном?Спасибо!!
EDIT:
Я попытался это решение удалить libv8 и переустановить через brew install
. Это было упомянуто и в нескольких аналогичных вопросах. Не повезло.
Я также пробовал переменные окружения CC
, CXX
и CPP
, как описано здесь, хотя я не Думаю, что это имеет какой-то эффект, поскольку он уже собирал мой компилятор gcc v4.6
.
Эти шаги сработали для меня.
ОС: Maverick Ruby: 2.1.1
gem uninstall libv8
gem install therubyracer -v '0.11.3'
gem install libv8 -v '3.11.8.13' -- --with-system-v8
Для тех, кто столкнулся с этой проблемой в OS X El Capitan, это решение из потока проблем, связанных с технологией, было для меня окончательно:
brew tap homebrew/versions
brew install v8-315
gem install libv8 -v '3.16.14.13' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315
bundle install
Я также запускал brew install gcc
раньше, но я не уверен, действительно ли это было необходимо.
Попробуйте сначала удалить libv8 gem, затем установите rubyracer, а затем libv8
gem uninstall libv8
gem install therubyracer
gem install libv8 -- --with-system-v8
решение размещенное на github, решило его для меня, попробовав все другие решения, предложенные на github и здесь.
У меня была такая же конфигурация системы.
Это на элите капитан, поэтому не точный ответ на вопрос, но люди могут найти эту информацию полезной.
Я цитирую его здесь для видимости:
Решена та же проблема
- MacOS 10.11.2
- ruby 1.9.3
- libv8 3.16.14.13
- therubyracer 0.12.2
-
brew tap homebrew/versions brew install v8-315 brew link --force v8-315 bundle install brew unlink v8-315
Если вы также не можете установить libv8,
gem install libv8 --with-system-v8
или
bundle config build.libv8 --with-system-v8
Вышеуказанные ответы не сработали для меня; моя конфигурация связки имеет disable-shared-gems
, что вызывает дополнительные проблемы.
Я использую Yosemite 10.10.1, Rails 3.2.x и Ruby 1.9.3p550.
Следующий фрагмент в моей bin/setup
исправил эту проблему для меня.
if ! bundle show therubyracer; then
bundle config build.libv8 --with-system-v8
gem install --install-dir vendor/bundle libv8 -v 3.16.14.7
gem install libv8 -v 3.16.14.7
gem install --install-dir vendor/bundle therubyracer
fi
Я нашел решение этой проблемы.
Это больше совместимо с libv8 и therubyracer.
gem install libv8 -v '3.3.10.4' -- --with-system-v8
gem install therubyracer -v '0.10.2'
Это должно работать нормально, поскольку обе версии совместимы со мной. Первоначально я пытался установить версию 0.12.0 для therubyracer и столкнулся с проблемой. Как только я переключился на версию 0.10.2, все сработало нормально.
Моя текущая ОС: Mavericks
У меня есть эта проблема для MacOS Mojave 10.14.2
и я смог решить эту проблему, когда я обнаружил, где был установлен пакет v8-315
и каково имя папки. В моем случае это было здесь /usr/local/opt/[email protected]
.
Чтобы это исправить, я бегу дальше:
brew install v8-315
gem install libv8 -v '3.16.14.15' -- --with-system-v
gem install therubyracer -v '0.12.2' -- --with-system-v8 --with-v8-dir=/usr/local/opt/[email protected]
bundle install
После разрыва моей головы почти два дня это сработало для меня.
rvm install 2.2.2
gem install rails
bundle install
Мне не удалось заставить therubyracer работать на MacOS Catalina 10.15 из-за зависимости libv8, несмотря на установку x64 (64-битный вариант) libv8.
Решением для меня было переключиться с therubyracer на mini_racer, с установленным самоцветом mini_racer (без необходимости его локальной сборки) и, эй, presto! Я мог бы продолжить.
Попробуй!
Я заметил, что когда мы сталкиваемся с проблемой:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension
Затем вы должны установить build-essential
sudo apt install build-essential
Он работает для меня с проблемами установки mini_race.
Я просто запускаю обновление пакета, и это сработало для меня.
Обобщение: Использование Ruby 2.3.0