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
答案 0 :(得分:89)
xcode-select --install
)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
,@ 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为我修复了它。
答案 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