Подтвердить что ты не робот

Установите драгоценный камень на OSX 10.11 El Capitan

bundle install не работает с Make sure that `gem install therubyracer -v '0.12.1'` succeeds before bundling

gem install therubyracer -v '0.12.1' терпит неудачу с ошибками, которые, как представляется, связаны с компиляцией

До этого у libv8 gem возникали проблемы, но теперь они устанавливаются благодаря следующим сообщениям SO.

Гиды для исправления rubyracer для Mavericks, похоже, не работают из-за изменений в El Capitan?

ln: /usr/bin/cpp: Operation not permitted 
4b9b3361

Ответ 1

  • Установить xcode через магазин приложений
  • Установите "инструменты командной строки" для xcode (xcode-select --install)
  • Если вы используете rbenv, после установки ruby ​​вам нужно rbenv rehash
  • Предполагая, что вы запустили gem install bundler и получили ошибки, удалите беспорядок:

    gem uninstall libv8
    gem uninstall therubyracer
    brew rm v8
    
  • Установить gcc4.2

    brew tap homebrew/dupes
    brew install apple-gcc42
    
  • Установить v8

    brew tap homebrew/versions
    brew install v8-315
    brew link --force v8-315
    
  • Установить драгоценные камни

    gem install libv8 -- --with-system-v8
    gem install therubyracer
    

    если вы получите dyld: lazy symbol binding failed: Symbol not found, @rpbaltazar предлагает альтернативу:

    bundle config --local build.libv8 --with-cxx=/usr/local/bin/g++-4.2
    bundle install
    

Ответ 2

У меня все еще были проблемы с ответом @xxjjnn. Следующий ответ от github разрешил его. Моя текущая настройка: El Capitan 10.11.4 и Xcode 7.3.

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

Ответ 3

answer, предоставленный на therubyracer Страница Github работала для меня:

brew tap homebrew/versions
brew install v8-315
brew link --force v8-315
gem install libv8 -- --with-system-v8
gem install therubyracer

Ответ 4

(публикация в качестве комментария для целей удобочитаемости, но это должно быть дополнением к исходному принятому ответу)

После выполнения принятого ответа я столкнулся с ошибкой, описанной в комментариях.

Решение, которое я нашел полезным для меня, состояло в следующем

gem uninstall libv8
gem uninstall therubyracer
bundle config --local build.libv8 --with-cxx=/usr/local/bin/g++-4.2
bundle install

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

Ответ 5

Я знаю, что этот вопрос связан конкретно с установкой therubyracer -v '0.12.1', но решение действительно заключается в обновлении до '0.12.2'.

Я боролся с этим на нескольких проектах и ​​всегда забываю об этом. Затем, в конце концов, я помню, и все это работает.

Обязательно очистите все, что вы добавили, до bundle config, когда вам не понадобится bundle config --delete build.libv8.

Вот как нить на gem repo об этом: https://github.com/cowboyd/therubyracer/issues/398#issuecomment-238161167

Ответ 6

Сначала попробуйте удалить Gemfile.lock и снова запустите bundle install. Gemfile.lock будет создан снова.

Это будет работать в большинстве случаев на El Capitan.

Без этого он просто установит те же версии, что и в Gemfile.lock. Если вы удалите этот файл, bundle install будет извлекать новейшие версии ваших драгоценных камней.

Ответ 7

На самом деле, apple-gcc42 удален из варева:

apple-gcc42 был удален из homebrew/core в коммите bcba321ea:

Вместо этого я установил [email protected] Итак, после ответа xxjjnn вместо 5 просто запустите:

brew install [email protected]

Ответ 8

Если ни одно из вышесказанного не работает для вас, следуйте советам ребят. Удаление всех связанных и обновленных gcc исправлено для меня.

Gem install therubyracer -v '0.11.4'?

Ответ 9

Я обновил gem therubyracer до 0.12.2, затем запустил следующие команды в хранилище rails:

$ brew install v8-315
$ bundle config --local build.libv8 --with-system-v8
You are replacing the current local value of build.libv8, which is currently nil
$ bundle config --local build.therubyracer --with-v8-dir=$(brew --prefix v8-315)
You are replacing the current local value of build.therubyracer, which is currently nil

и наконец

bundle install