28

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修复 ruby​​racer 的指南似乎不起作用?

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

10 回答 10

92
  1. 通过应用商店安装 xcode
  2. xcode-select --install为 xcode ( )安装“命令行工具”
  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,@rpbaltazar 建议一个替代方案:

    bundle config --local build.libv8 --with-cxx=/usr/local/bin/g++-4.2
    bundle install
    
于 2015-11-02T10:41:58.233 回答
50

我仍然对@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
于 2016-04-03T04:38:46.413 回答
11

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

brew tap homebrew/versions
brew install v8-315
brew link --force v8-315
gem install libv8 -- --with-system-v8
gem install therubyracer
于 2016-03-28T13:38:14.963 回答
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

最后

bundle install
于 2019-04-18T13:59:59.280 回答
3

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

我在几个项目中为此苦苦挣扎,但总是忘记这一点。然后最终我记得,这一切都有效。

bundle config一旦不需要,请务必清除添加到的任何内容bundle config --delete build.libv8

这是 gem repo 上关于此的主题:https ://github.com/cowboyd/therubyracer/issues/398#issuecomment-238161167

于 2016-08-14T20:43:59.057 回答
2

(出于可读性目的作为评论发布,但这应该是原始接受答案的附加内容)

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

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

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

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

于 2016-03-23T10:27:31.570 回答
2

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

apple-gcc42 在提交 bcba321ea 中从 homebrew/core 中删除:

相反,我已经安装了gcc@4.9 所以,按照xxjjnn answer,而不是 5 只是运行:

brew install gcc@4.9
于 2019-01-02T14:15:14.453 回答
1

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

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

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

于 2016-05-03T05:35:00.217 回答
0

如果上述方法都不适合您,请遵循这些人的建议。卸载所有相关内容并升级 gcc 为我修复了它。

宝石安装 therubyracer -v '0.11.4'?

于 2016-03-24T20:23:57.350 回答
0

如果您可以切换到迷你赛车,安装或更新它对我来说类似于这篇文章

如何修复 libv8 错误版本错误

TL;博士bundle update mini_racer

于 2021-12-02T13:41:11.270 回答