在OSX 10.11 El Capitan上安装therubyracer gem

时间:2015-11-02 10:41:58

标签: bundler osx-elcapitan therubyracer

bundle installMake sure that `gem install therubyracer -v '0.12.1'` succeeds before bundling

而失败

gem install therubyracer -v '0.12.1'失败,出现与编译相关的错误

在此之前,libv8 gem遇到了问题,但现在由于以下SO帖子而安装了。

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

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

9 个答案:

答案 0 :(得分:89)

  1. 通过app store安装xcode
  2. 安装'命令行工具' for 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. 安装宝石

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

    如果你得到dyld: lazy symbol binding failed: Symbol not found,@ pbbaltazar会提出另一种选择:

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

答案 1 :(得分:48)

@ 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

答案 2 :(得分:10)

therubyracer Github页面上提供的answer为我工作:

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

答案 3 :(得分:2)

(为了便于阅读而发布评论,但这应该是原始接受答案的附加内容)

在运行接受的答案后,我面临评论中描述的错误。

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

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

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

答案 4 :(得分:2)

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

我在一些项目上一直在努力,总是忘记这一点。然后最终我记得,一切正常。

请务必使用()清除已添加到bundle config的所有内容。

以下是宝石回购中关于此问题的主题:https://github.com/cowboyd/therubyracer/issues/398#issuecomment-238161167

答案 5 :(得分:1)

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

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

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

答案 6 :(得分:1)

实际上,apple-gcc42已从brew中移除:

  

apple-gcc42已从提交bcba321ea的自制软件/核心中删除:

相反,我已经安装了gcc@4.9 因此,遵循xxjjnn answer,而不是5,只需运行:

brew install gcc@4.9

答案 7 :(得分:0)

如果以上都不适合您,请按照这个人的建议。卸载相关的所有内容并升级gcc为我修复了它。

Gem install therubyracer -v '0.11.4'?

答案 8 :(得分:0)

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