在OSX 10.11 El Capitan上安装therubyracer gem

xxj*_*jnn 24 bundler therubyracer osx-elcapitan

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帖子而安装.

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

ln: /usr/bin/cpp: Operation not permitted 
Run Code Online (Sandbox Code Playgroud)

xxj*_*jnn 89

  1. 通过app store安装xcode
  2. 为xcode(xcode-select --install)安装'命令行工具'
  3. 如果使用rbenv,安装红宝石后需要 rbenv rehash
  4. 假设您已经运行gem install bundler并遇到错误,请删除您的混乱:

    gem uninstall libv8
    gem uninstall therubyracer
    brew rm v8
    
    Run Code Online (Sandbox Code Playgroud)
  5. 安装gcc4.2

    brew tap homebrew/dupes
    brew install apple-gcc42
    
    Run Code Online (Sandbox Code Playgroud)
  6. 安装v8

    brew tap homebrew/versions
    brew install v8-315
    brew link --force v8-315
    
    Run Code Online (Sandbox Code Playgroud)
  7. 安装宝石

    gem install libv8 -- --with-system-v8
    gem install therubyracer
    
    Run Code Online (Sandbox Code Playgroud)

    如果你得到dyld: lazy symbol binding failed: Symbol not found,@ abbaltazar建议一个替代方案:

    bundle config --local build.libv8 --with-cxx=/usr/local/bin/g++-4.2
    bundle install
    
    Run Code Online (Sandbox Code Playgroud)


小智 49

@ 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
Run Code Online (Sandbox Code Playgroud)

  • 使用OS X 10.11.4 w/Ruby 2.3.0和Rails 4.2.6 - [Process](https://gist.github.com/cdesch/35e7c2fe1abaa8894e7aa963c3bcb41d) (2认同)

Jan*_*imo 10

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

brew tap homebrew/versions
brew install v8-315
brew link --force v8-315
gem install libv8 -- --with-system-v8
gem install therubyracer
Run Code Online (Sandbox Code Playgroud)


anq*_*egi 5

我将 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
Run Code Online (Sandbox Code Playgroud)

最后

bundle install
Run Code Online (Sandbox Code Playgroud)