Как установить therubyracer gem на 10.10 Yosemite?


97

Мне не удается установить гем rubyracer на Yosemite 10.10.

Вот журнал:

11:53 $ gem install libv8 -v '3.16.14.3' - --with-system-v8


Создание собственных расширений с помощью: '--with-system-v8'
Это может занять некоторое время ...
Успешно установлена ​​libv8-3.16.14.3
Разбор документации для libv8-3.16.14.3
Установка документации ri для libv8-3.16.14.3
Завершена установка документации для libv8 через 0 секунд
Установлен 1 драгоценный камень


02:05 $ gem установить therubyracer -v '0.12.1' - --with-system-v8


Создание собственных расширений с помощью: '--with-system-v8'
Это может занять некоторое время ...
ОШИБКА: Ошибка при установке rubyracer:
    ОШИБКА: не удалось создать собственное расширение gem.

    /usr/local/var/rbenv/versions/2.1.2/bin/ruby extconf.rb --with-system-v8
проверка main () в -lpthread ... да
проверка main () в -lobjc ... да
проверка на v8.h ... нет
*** Ошибка extconf.rb ***
Не удалось создать Makefile по какой-то причине, возможно, из-за отсутствия необходимых
библиотеки и / или заголовки. Дополнительные сведения см. В файле mkmf.log. Ты можешь
нужны параметры конфигурации.

Предоставляемые варианты конфигурации:
    --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 =.
    --курдир
    --ruby = / usr / local / var / rbenv / версии / 2.1.2 / 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
/usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in `configure ': у вас есть выбран для использования версии V8, найденной в вашей системе (Libv8 :: Location :: System :: NotFoundError)
и * не * тот, который идет в комплекте с rubygem libv8. Тем не мение,
его не удалось найти. пожалуйста, убедитесь, что у вас есть версия
v8, совместимая с установленной версией 3.16.14.3. Ты можешь
необходимо использовать специальные параметры --with-v8-dir, если он находится в нестандартном
расположение

Спасибо,
Mgmt

    из /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/lib/libv8.rb:7: в `configure_makefile '
    из extconf.rb: 32: в ''

Ошибка extconf, код выхода 1

Файлы Gem останутся установленными в /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/therubyracer-0.12.1 для проверки.
Результаты записываются в /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-14/2.1.0-static/therubyracer-0.12.1/gem_make. вне

У вас тоже проблемы с Йосемити: D
Dalorzo 06

Я знаю, мне нравится быть авантюристом :-P
Николас Бланко

1
У меня тоже проблемы с этим, я тоже пытался сделать brew install v8, но не получилось
acrogenesis

@sandelius, проверьте мой ответ
mmln

Ответы:


68
git clone https://github.com/cowboyd/libv8.git
cd libv8
bundle install
bundle exec rake clean build binary
gem install pkg/libv8-3.16.14.3-x86_64-darwin-12.gem #note that libv8 version may change, so tab through files in pkg/, also remember to use the one with version specified

затем просто объедините свои драгоценные камни проекта

это единственный способ, которым это сработало для меня на 10.10 (рубин 2.1.2)


2
спасибо, но это libv8, я говорил о драгоценном камне rubyracer.
Николас Бланко

2
это то, что вам нужно, чтобы избежать проблем с therubyracer
mmln

2
Меня не волнует, нарушаю ли я правила. Я не могу тебя отблагодарить. Вы сэкономили мне огромный дедлайн по проекту.
AKWF

1
Спасибо, это сработало для меня, только для парня, который копирует / вставляет, как я, сейчас мы находимся в gem install pkg / libv8-3.16.14.7-x86_64-darwin-14.gem
Кристоф Дюфур

2
Также стоит упомянуть, что если вы используете Gemfile и по-прежнему испытываете проблемы с установкой rubyracer, возможно, это связано с тем, что в Gemfile.lock уже добавлена ​​другая версия libv8. Просто добавьте gem 'libv8', '3.16.14.3'(или любую другую версию libv8, которую вы только что установили вручную) и запустите пакетное обновление libv8. Это должно затем установить therubyracer.
Джон Кэрнс,

257
gem uninstall libv8
brew install v8
gem install therubyracer
gem install libv8 -v '3.16.14.3' -- --with-system-v8

это единственный способ, которым это сработало для меня на 10.10 (рубин 2.1.2)

Или попробуйте gem install libv8 -v 'XX.XX.XX' -- --with-system-v8добавить версию гема :)

ОБНОВЛЕНИЕ для Mac OS Catalina:

brew tap homebrew/versions
brew install v8@3.15
brew link --force v8@3.15
gem install libv8 -v 'XX.XX.XX' -- --with-system-v8
gem install therubyracer

3
Да, это тот, который помогает без всяких странностей. Даже если вы просто получаете ошибку libv8, сделайте это! Спасибо.
pjammer 02

2
Ага. Это правильный способ сделать это. Особенно, если вы перестроили свой Ruby с помощью последних инструментов командной строки 10.10.
Pankaj Tyagi

3
У меня работал с Ruby 2.1.3 в OS X Yosemite.
Sarah Vessels

4
В дополнение к этому, если вы используете сборщик пакетов и имеете Gemfile, вам может потребоваться настроить его до последней версии, которую вы только что установили. Например, мне пришлось (в OS X Yosemite) сделать следующее: gem 'therubyracer', '0.12.1'(добавил версию). Потом удалил Gemfile.lock и сделал bundle install. Работает нормально.
paneer_tikka 01

2
Это сработало и для меня на Эль-Капитане. Я думаю, что это намного проще и должен быть принятым ответом.
rcd

42

На этот раз мне не подходит ни один из ответов. Я тоже использую это:

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

Видно на rubyracer вопросов на Github.

Надеюсь, это поможет кому-то другому.


Спасибо за это. Ни один из других подходов не будет работать на El Capitan с использованием современных версий зависимых драгоценных камней. (therubyracer на данный момент сильно отстает от libv8.)
Мэтт Митчелл

К сожалению, ты прав ... Эта ошибка сводит меня с ума каждый раз, когда я меняю версию Ruby.
coding addicted

1
Tap homebrew / versions устарело, поэтому это больше не работает.
mattp

1
На самом деле, gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)у меня работает лучше. Режиссер в моем Mac на самом деле/usr/local/opt/v8@3.15
Junji Zhi

26

Возможно, это будет полезно для кого-то, но у меня возникли проблемы с установкой rubyracer (из-за проблем с libv8), решение заключалось в удалении всех установленных мною libv8. Установите therubyracer

$ gem uninstall libv8
$ gem install therubyracer -v '0.12.0'
Fetching: libv8-3.16.14.7-x86_64-darwin-14.gem ( 57%)
Fetching: libv8-3.16.14.7-x86_64-darwin-14.gem (100%)
Successfully installed libv8-3.16.14.7-x86_64-darwin-14
Building native extensions.  This could take a while...
Successfully installed therubyracer-0.12.0
2 gems installed

Я надеюсь, что это поможет кому-то.


Похоже, у меня это сработало. Однако я хотел бы отметить, что лучший способ , чтобы удалить все версии libv8 драгоценный камень: gem uninstall libv8 -a -x. Если вы используете менеджер версий Ruby (например rbenv, и т. Д.), То это работает только для вашей текущей версии ruby ​​(в случае, если это не было очевидно).
xentek

👍 это решение сработало для меня - El Capitan 10.11.6, Ruby - ruby ​​1.9.3p448 (2013-06-27, ревизия 41675)
sameera207

13

Похоже, что это было исправлено в апстриме. Что сработало для меня, @aurels, @Mike Causer и @Juanda:

bundle update libv8

7

Это сработало для меня очень хорошо на моих Yosemite и Ruby 2.1.5 (Ruby через RVM)

gem install libv8 -v '3.16.14.3' -- --with-system-v8

Раньше это Gem::Ext::BuildError: ERROR: Failed to build gem native extension.выдавало ошибку для libv8 gem версии 3.16.14.3


7

Только это работает для меня в моем Yosemite, Ruby 2.1.2:

gem install libv8 -v '3.16.14.3' -- --with-system-v8
brew link --overwrite v8-315 --force
gem install therubyracer -v '0.12.2' -- --with-system-v8

Только это решило проблему с установкой rubyracer для ruby 1.9.3p484иrubyracer 0.12.3
Михаил Клишевич

6

Я смог продолжить работу с рубиновым гонщиком после rm Gemfile.lock

заранее: я установил v8 через brew install v8, а затем сделалgem install libv8 -v '3.16.14.3' -- --with-system-v8

и я использую 10.10 Йосемити


4

Они исправили эту проблему в самой последней версии libv8. См .: https://github.com/cowboyd/libv8/issues/123

Вы должны установить из репозитория github, в рельсах я добавил строку в свой гем-файл, подобную этой gem "libv8", git: "git://github.com/cowboyd/libv8.git", submodules: true

РЕДАКТИРОВАТЬ:

Это, по-видимому, решает только часть проблемы. Я установил новую версию libv8, но теперь rubyracer все еще ищет другую, как мне кажется? Все еще изучаю это.


3

У меня была такая же проблема на Йосемити. Мое решение похоже на то, что показано выше.

Использовать gem uninstall libv8 для удаления всего, что может быть установлено.

Оставьте rubyracer в своем Gemfile, но удалите все явные ссылки на libv8.

Бегать bundle install .

После этого libv8 установился как зависимость.


Это была моя проблема. У меня было несколько версий libv8, которые боролись друг с другом. Очистить их и позволить сборщику разрешить зависимости было правильным решением.
DavidMann10k

2

Обновленный ответ за 2018 год.

Я на High Sierra, на Homebrew 1.6.1

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@3.15/

Это то, что сработало для меня.

Благодарим @coding-addicted за его оригинальный ответ .


1

После нескольких часов попыток простое обновление Ruby сработало:

brew install ruby 

а затем добавляем в файл драгоценного камня следующее:

gem 'libv8'  
gem 'therubyracer' 

1

Внимание всем, у кого могла быть моя проблема: в конечном итоге я удалил свою рубиновую версию в RVM, а затем переустановил ее. Похоже, что для компиляции ruby ​​использовались правильные зависимости в последней версии инструментов xcode.

rvm list
rvm uninstall ruby-x.x.x
rvm install ruby-x.x.x

0

Я сделал следующее

gem install therubyracer

который теперь устанавливает, therubyracer 0.12.1который устанавливает зависимость, libv8 (3.16.14.7 x86_64-darwin-14)которая установилась без ошибок.

Я сделал это, используя то, ruby 2.1.5что я установил через:

CC=/usr/bin/gcc rbenv install 2.1.5

что я и сделал после бега brew upgrade ruby-builds.

После установки ruby 2.1.5тоже запустил

gem upgrade --system

получить rubygems-update 2.4.5


0

это происходит также из-за некоторых конфликтов с libv8, хотя вы можете просто назначить версию rubyracer, и она будет установлена:

измените следующее в гем-файле:

драгоценный камень 'therubyracer', '~> 0.12.1'

и выполните установку пакета



0

Это решение сработало для меня после решения Якуба Троска выше с незначительным изменением

gem uninstall libv8
gem install therubyracer -v '0.12.1'
    Fetching: libv8-3.16.14.19-x86_64-darwin-18.gem (100%)
    Successfully installed libv8-3.16.14.19-x86_64-darwin-18
    Building native extensions.  This could take a while...
    Successfully installed therubyracer-0.12.1
    Parsing documentation for libv8-3.16.14.19-x86_64-darwin-18
    Installing ri documentation for libv8-3.16.14.19-x86_64-darwin-18
    Parsing documentation for therubyracer-0.12.1
    Installing ri documentation for therubyracer-0.12.1
    Done installing documentation for libv8, therubyracer after 0 seconds
    2 gems installed
gem install libv8 -v '3.16.14.17' -- --with-system-v8  (if the libv8 version required for your project is different from the one installed by rubyracer)
bundle install

Укажите, в чем заключается незначительное изменение, и попытайтесь объяснить, почему оно работает. Поскольку вы отвечаете на вопрос четырехлетней давности, вам также следует добавить некоторые подробности о применимых версиях (ваш ответ тогда мог быть неуместным).
Michal

0

Использование каталога homebrew v8 --with-v8-dir=/usr/local/Cellar/v8@3.15/3.15.11.18_1вместо того /usr/local/opt/v8-315, что сработало для меня, при кодировании ответа наркомана.

Это видно в Summaryнастое команды установки, brew install v8-315.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.