在 OSX 10.11 El Capitan 上安装 therubyracer gem
Install therubyracer gem on 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 帖子,现在已安装。
由于 El Capitan 的变化,Mavericks 的修复 rubyracer 的指南似乎不起作用?
ln: /usr/bin/cpp: Operation not permitted
- 通过应用商店
安装xcode
- 为 xcode (
xcode-select --install
) 安装 'command line tools'
- 如果使用 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
安装 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
(出于可读性目的作为评论发布,但这应该是对原始接受答案的补充)
在 运行 接受答案后,我遇到了评论中描述的错误。
我发现对我有帮助的解决方案是运行以下
gem uninstall libv8
gem uninstall therubyracer
bundle config --local build.libv8 --with-cxx=/usr/local/bin/g++-4.2
bundle install
请注意,已接受答案的初始步骤是必要的,即安装编译器。
如果以上 none 适合您,请听从这些人的建议。卸载所有相关的东西并升级 gcc 为我修复了它。
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
我对@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
首先尝试再次删除您的 Gemfile.lock 和 运行 bundle install
。 Gemfile.lock 将再次创建。
这适用于 El Capitan 上的大多数情况。
否则它只会安装 Gemfile.lock 中提到的相同版本。如果删除此文件,bundle install
将获取最新版本的 gem。
我知道这个问题专门关于安装 therubyracer -v '0.12.1',但解决方案确实是升级到 '0.12.2' .
我在几个项目中遇到过这个问题,但总是忘记这一点。后来我终于记起来了,一切正常。
一旦您不需要使用 bundle config --delete build.libv8
添加到 bundle config
的任何内容,请务必清除它。
这是 gem 回购上关于此的主题:https://github.com/cowboyd/therubyracer/issues/398#issuecomment-238161167
实际上,apple-gcc42
已从 brew 中删除:
apple-gcc42 was deleted from homebrew/core in commit bcba321ea:
相反,我安装了 gcc@4.9
所以,跟随 ,而不是 5 只是 运行:
brew install gcc@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
如果你可以切换到 mini racer,安装或更新它对我来说就像这样 post
How to fix libv8 bad version error
TL;DR bundle update mini_racer
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 的变化,Mavericks 的修复 rubyracer 的指南似乎不起作用?
ln: /usr/bin/cpp: Operation not permitted
- 通过应用商店 安装xcode
- 为 xcode (
xcode-select --install
) 安装 'command line tools'
- 如果使用 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
安装 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
(出于可读性目的作为评论发布,但这应该是对原始接受答案的补充)
在 运行 接受答案后,我遇到了评论中描述的错误。
我发现对我有帮助的解决方案是运行以下
gem uninstall libv8
gem uninstall therubyracer
bundle config --local build.libv8 --with-cxx=/usr/local/bin/g++-4.2
bundle install
请注意,已接受答案的初始步骤是必要的,即安装编译器。
如果以上 none 适合您,请听从这些人的建议。卸载所有相关的东西并升级 gcc 为我修复了它。
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
我对@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
首先尝试再次删除您的 Gemfile.lock 和 运行 bundle install
。 Gemfile.lock 将再次创建。
这适用于 El Capitan 上的大多数情况。
否则它只会安装 Gemfile.lock 中提到的相同版本。如果删除此文件,bundle install
将获取最新版本的 gem。
我知道这个问题专门关于安装 therubyracer -v '0.12.1',但解决方案确实是升级到 '0.12.2' .
我在几个项目中遇到过这个问题,但总是忘记这一点。后来我终于记起来了,一切正常。
一旦您不需要使用 bundle config --delete build.libv8
添加到 bundle config
的任何内容,请务必清除它。
这是 gem 回购上关于此的主题:https://github.com/cowboyd/therubyracer/issues/398#issuecomment-238161167
实际上,apple-gcc42
已从 brew 中删除:
apple-gcc42 was deleted from homebrew/core in commit bcba321ea:
相反,我安装了 gcc@4.9
所以,跟随
brew install gcc@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
如果你可以切换到 mini racer,安装或更新它对我来说就像这样 post
How to fix libv8 bad version error
TL;DR bundle update mini_racer