在OSX 10.11 El Capitan上安装therubyracer gem



bundle installMake sure that `gem install therubyracer -v '0.12.1'` succeeds before bundling 一起失败

gem install therubyracer -v '0.12.1'失败,错误似乎与编译有关

在此之前,libv8gem曾出现问题,但由于下面的SO帖子,现在已经安装了。

由于El Capitan的变化,小牛队修复rubyracer的指南似乎不起作用?

ln: /usr/bin/cpp: Operation not permitted 
  1. 通过应用商店安装xcode
  2. 为xcode(xcode-select --install)安装"命令行工具"
  3. 如果使用rbenv,则在安装ruby后需要rbenv rehash
  4. 假设您已经运行了gem install bundler并出现错误,请删除您的烂摊子:

    gem uninstall libv8
    gem uninstall therubyracer
    brew rm v8
    
  5. 安装gcc4.2

    brew tap homebrew/dupes
    brew install apple-gcc42
    
  6. 安装v8

    brew tap homebrew/versions
    brew install v8-315
    brew link --force v8-315
    
  7. 安装gems

    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
    

我对@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

therubyracer Github页面上提供的答案对我有效:

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

我将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

我知道这个问题是专门关于安装therubyracer-v'0.12.1'的,但解决方案实际上是升级到'1.12.2'

我在一些项目中遇到过这种情况,但总是忘记了这一点。最后我想起来了,一切都好了。

一旦你不需要bundle config --delete build.libv8,一定要清除你添加到bundle config中的任何内容。

以下是关于这一点的gem回购帖子:https://github.com/cowboyd/therubyracer/issues/398#issuecomment-238161167

在运行已接受的答案后,我遇到了评论中描述的错误。

我发现对我有帮助的解决方案是运行以下

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

请注意,接受答案的初始步骤是必要的,即安装编译器。

实际上,apple-gcc42已从酿造中删除:

apple-gcc42在提交bcba321ea:时从自制程序/核心中删除

相反,我安装了gcc@4.9所以,按照xxjjnn的答案,而不是5只运行:

brew install gcc@4.9

首先尝试删除Gemfile.lock并再次运行bundle install。将再次创建Gemfile.lock。

这将适用于El Capitan的大多数情况。

否则,它只会安装Gemfile.lock中提到的相同版本。如果您删除此文件,bundle install将获取您的gem的最新版本。

如果以上任何一项都不适用,请遵循这些家伙的建议。卸载所有相关的东西并升级gcc为我修复了它。

Gem install therubyracer-v';0.11.4';?

如果你可以切换到迷你赛车,安装或更新它对我来说很有效,类似于这个后

如何修复libv8坏版本错误

TL;DR bundle update mini_racer

最新更新