Установите драгоценный камень на 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
Ответы
Ответ 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