Как установить ruby ​​gem libv8 на новую установку Mountain Lion?

Я ломал голову над этим. Я следовал предложениям в нескольких связанных сообщениях, но безрезультатно.

Я начинаю с новой установки Mountain Lion, установил инструменты командной строки и успешно установил Ruby 1.8.7 на основе нескольких других сообщений, которые я нашел для установки gcc-4.2 через Homebrew и добавления символической ссылки в /usr/ бин/gcc-4.2.

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

Любые дополнительные данные?

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /Users/Eric/.rbenv/versions/1.8.7-p352/bin/ruby extconf.rb 
creating Makefile
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
Traceback (most recent call last):
  File "build/gyp/gyp", line 18, in <module>
    sys.exit(gyp.main(sys.argv[1:]))
  File "build/gyp/pylib/gyp/__init__.py", line 480, in main
    generator.GenerateOutput(flat_list, targets, data, params)
  File "build/gyp/pylib/gyp/generator/make.py", line 2085, in GenerateOutput
    part_of_all=qualified_target in needed_targets)
  File "build/gyp/pylib/gyp/generator/make.py", line 756, in Write
    self.xcode_settings, self.Absolutify, self.Pchify))
  File "build/gyp/pylib/gyp/generator/make.py", line 1132, in WriteSources
    cflags = self.xcode_settings.GetCflags(configname)
  File "build/gyp/pylib/gyp/xcode_emulation.py", line 258, in GetCflags
    sdk_root = self._SdkPath()
  File "build/gyp/pylib/gyp/xcode_emulation.py", line 247, in _SdkPath
    return os.path.join(self._GetSdkBaseDir(), '%s.sdk' % sdk_root)
  File "build/gyp/pylib/gyp/xcode_emulation.py", line 233, in _GetSdkBaseDir
    raise Exception('Error %d running xcode-select' % job.returncode)
Exception: Error 2 running xcode-select
make: *** [out/Makefile.x64] Error 1
Using compiler: g++
GYP_GENERATORS=make \
    build/gyp/gyp --generator-output="out" build/all.gyp \
                  -Ibuild/standalone.gypi --depth=. \
                  -Dv8_target_arch=x64 \
                  -S.x64 -Dhost_arch=x64
xcode-select: Error: No Xcode is selected. Use xcode-select -switch <path-to-xcode>, or see the xcode-select manpage (man xcode-select) for further information.



Gem files will remain installed in /Users/Eric/Development/par8o/vendor/bundle/ruby/1.8/gems/libv8-3.11.8.3 for inspection.
Results logged to /Users/Eric/Development/par8o/vendor/bundle/ruby/1.8/gems/libv8-3.11.8.3/ext/libv8/gem_make.out
An error occured while installing libv8 (3.11.8.3), and Bundler cannot continue.
Make sure that `gem install libv8 -v '3.11.8.3'` succeeds before bundling.

person Eric M.    schedule 31.07.2012    source источник
comment
Вы установили xcode. Если нет, попробуйте установить xcode   -  person Josnidhin    schedule 31.07.2012
comment
У меня нет, и я предпочел бы избежать этого, если смогу. Разве пакет инструментов командной строки не должен охватывать это?   -  person Eric M.    schedule 31.07.2012
comment
Возможно, не очень уверен   -  person Josnidhin    schedule 31.07.2012
comment
Я обнаружил, что stackoverflow.com/questions/19577759/ gem install libv8 -v 3.11.8.17 -- --with-system-v8 работает =)   -  person xxjjnn    schedule 30.10.2013
comment
Что ты говоришь о прошлом я? Работает только это: stackoverflow.com/questions/19546730/ (см. ответ, указывающий на github.com/cowboyd /libv8/issues/107, необходимо установить гем вручную. Должно быть, это временная проблема)   -  person xxjjnn    schedule 01.11.2013


Ответы (9)


Сделка с рубином 1.8.7. Вероятно, вам нужен этот гем для запуска therubyracer. И чтобы это работало, вам нужно установить гем therubyracer следующим образом:

RUBYOPT=-rrubygems gem install therubyracer

Это установит драгоценные камни therubyracer и libv8.

источник: http://coderwall.com/p/y1djxq

person formigarafa    schedule 08.08.2012

В моем случае компиляция не удалась из-за проблем с libtool. Ошибка была libtool: unrecognized option '-static' при установке libv8gem.

Проблема заключалась в том, что у моей установки macports был явно нерабочий libtool. И macports-Directory в $PATH были раньше, чем обычные каталоги вызывали неправильный libtool.

Удаление macports-Directories из переменной PATH-Environment помогло: использовалась libtool из XCode и все прошло нормально.

person senfomat    schedule 19.12.2012
comment
Можете ли вы быть немного более конкретным о том, как вы это сделали? Я довольно новичок в этом процессе. - person flyingarmadillo; 19.05.2013

У меня была эта проблема, и я нашел решение нати">здесь

Короче, устанавливайте сами v8 - если у вас домашняя варка, вы можете запустить

brew install v8

Тогда используйте систему v8 при установке

gem install libv8 -- --with-system-v8
person cadlac    schedule 12.12.2013
comment
gem install libv8 -v=3.16.14.2 -- --with-system-v8 это сработало для меня (обратите внимание на дополнительный «--») - person Florin; 28.10.2014
comment
Спасибо @Florin, это была опечатка с моей стороны :) - person cadlac; 13.01.2015

После того, как у меня возникла эта проблема в OS X 10.7.5, у меня сработала следующая запись Gemfile:

gem "libv8", '3.11.8.13'

> ruby -v
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin11.4.2]
person kgilpin    schedule 04.02.2013

Использование предложенного выше предложения RUBYOPT=-rrubygems сработало для меня, но сначала мне пришлось удалить мои существующие драгоценные камни therubyracer и libv8.

person rlawrenz    schedule 13.11.2012

После многих неудачных попыток использования различных методов я только что, наконец, загрузил Xcode, и, как следует из сообщения об ошибке, это поможет.

person jpillora    schedule 10.12.2012

Ни один из приведенных выше ответов не помог мне. Вот что сделал:

gem install libv8 -v '3.11.8.3'
gem install therubyracer -v '0.11.0beta5'

ссылка: https://coderwall.com/p/s8ofka

Моя система:

OSX Mountain Lion
Ruby 1.9.3
person thekindofme    schedule 13.01.2013

Сначала попробуйте решить проблему, используя:

RUBYOPT=-rrubygems gem install therubyracer

Если ошибка не устранена, обновите свои драгоценные камни:

bundle update
person Jeremy Lynch    schedule 21.11.2013

Для разных гемов требуются разные версии GCC, поэтому это может работать или не работать для всех гемов, но эти символические ссылки решили проблему для гемов json, eventmachine и libv8 в Mountain Lion с установленным Xcode 4.4.

sudo ln -s /usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2

sudo ln -s /usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 /usr/bin/g++-4.2

person Jim Haungs    schedule 31.07.2012
comment
Разные версии RUBY требуют разных компиляторов. 1.9.3 и 1.9.2 требуют разных версий GCC соответственно. Для 1.9.3 GCC, поставляемый с Mountain Lion, должен подойти, но если вы хотите Ruby 1.9.2m, вам нужно установить GCC 4.2. - person tesserakt; 15.08.2012