【问题标题】:How to install therubyracer gem on 10.10 Yosemite?如何在 10.10 Yosemite 上安装 therubyracer gem?
【发布时间】:2014-07-27 16:52:00
【问题描述】:

我无法在 Yosemite 10.10 上安装 therubyracer gem。

这是日志:

11:53 $ gem install libv8 -v '3.16.14.3' -- --with-system-v8 使用以下命令构建本机扩展:'--with-system-v8' 这可能需要一段时间... 成功安装 libv8-3.16.14.3 解析 libv8-3.16.14.3 的文档 为 libv8-3.16.14.3 安装 ri 文档 0 秒后完成为 libv8 安装文档 已安装 1 个宝石 02:05 $ gem install therubyracer -v '0.12.1' -- --with-system-v8 使用以下命令构建本机扩展:'--with-system-v8' 这可能需要一段时间... 错误:安装 ruby​​racer 时出错: 错误:无法构建 gem 原生扩展。 /usr/local/var/rbenv/versions/2.1.2/bin/ruby extconf.rb --with-system-v8 检查 -lpthread 中的 main() ... 是 检查 -lobjc 中的 main()... 是 检查 v8.h ... 否 *** extconf.rb 失败 *** 由于某种原因无法创建 Makefile,可能缺乏必要 库和/或标题。检查 mkmf.log 文件以获取更多详细信息。你可以 需要配置选项。 提供的配置选项: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --没有-make-prog --srcdir=。 --curdir --ruby=/usr/local/var/rbenv/versions/2.1.2/bin/ruby --with-pthreadlib --没有-pthreadlib --with-objclib --没有-objclib --启用调试 --禁用调试 --with-v8-dir --没有-v8-dir --with-v8-include --without-v8-include=${v8-dir}/include --with-v8-lib --without-v8-lib=${v8-dir}/lib /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in `configure': 你有选择使用在您的系统上找到的 V8 版本 (Libv8::Location::System::NotFoundError) 并且*不是*与 libv8 ruby​​gem 捆绑在一起的那个。然而, 无法找到它。请确保你有一个版本 安装了与 3.16.14.3 兼容的 v8。你可以 如果它在非标准中,则需要特殊的 --with-v8-dir 选项 地点 谢谢, 管理 来自 /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/lib/libv8.rb:7:in `configure_makefile' 来自 extconf.rb:32:in `' extconf 失败,退出代码 1 Gem 文件将继续安装在 /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/therubyracer-0.12.1 以供检查。 结果记录到 /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-14/2.1.0-static/therubyracer-0.12.1/gem_make。出去

【问题讨论】:

  • 你也遇到了优胜美地的问题:D
  • 我知道,我喜欢做冒险家:-P
  • 我也遇到了这个问题,我也尝试过 brew install v8,但没有成功
  • @sandelius 检查我的答案

标签: ruby gem rubygems


【解决方案1】:
gem uninstall libv8
brew install v8
gem install therubyracer
gem install libv8 -v '3.16.14.3' -- --with-system-v8

这是它在 10.10 (ruby 2.1.2) 上对我有用的唯一方法

或者尝试gem install libv8 -v 'XX.XX.XX' -- --with-system-v8添加gem的版本:)

Mac OS Catalina 更新:

brew tap homebrew/versions
brew install v8@3.15
brew link --force v8@3.15
gem install libv8 -v 'XX.XX.XX' -- --with-system-v8
gem install therubyracer

【讨论】:

  • 是的,这是一个没有任何奇怪的帮助。即使您可能只是遇到 libv8 错误,也请执行此操作!谢谢。
  • 是的。这是正确的做法。特别是如果您使用最新的 10.10 命令行工具重建了 ruby​​。
  • 在 OS X Yosemite 中使用 Ruby 2.1.3 为我工作。
  • 除此之外,如果您正在使用 bundler 并且有 Gemfile,您可能需要将其调整为刚刚安装的最新版本。例如,我必须(在 OS X Yosemite 上)执行以下操作:gem 'therubyracer', '0.12.1'(添加版本)。然后删除 Gemfile.lock 并执行bundle install。它工作正常。
  • 这对我也有用,在 El Capitan 上。我认为这要简单得多,应该是公认的答案。
【解决方案2】:
git clone https://github.com/cowboyd/libv8.git
cd libv8
bundle install
bundle exec rake clean build binary
gem install pkg/libv8-3.16.14.3-x86_64-darwin-12.gem #note that libv8 version may change, so tab through files in pkg/, also remember to use the one with version specified

然后只需捆绑您的项目 gems

这是它在 10.10 (ruby 2.1.2) 上对我有用的唯一方法

【讨论】:

  • 谢谢,但这是 libv8,我说的是 ruby​​racer gem。
  • 这是避免 therubyracer 出现问题所需要的
  • 我不在乎我是否违反了规则。我不能感谢你。您为我节省了大量的项目期限。
  • 谢谢,它对我有用,只适合像我这样的复制/粘贴人,我们现在在 gem install pkg/libv8-3.16.14.7-x86_64-darwin-14.gem
  • 另外值得一提的是,如果您正在使用 Gemfile,但仍然无法安装 therubyracer,这可能是因为已将不同版本的 libv8 添加到 Gemfile.lock。只需添加 gem 'libv8', '3.16.14.3'(或您刚刚手动安装的 libv8 的确切版本),然后运行 ​​bundle update libv8。然后应该安装 therubyracer。
【解决方案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

见于 ruby​​racer Github 问题。

希望对其他人有所帮助。

【讨论】:

  • 谢谢。其他方法都不适用于使用现代版本的依赖 gem 的 El Capitan。 (在这一点上,therubyracer 落后于 libv8。)
  • 很遗憾你是对的......每次我更改 ruby​​ 版本时,这个错误都会让我发疯。
  • tap homebrew/versions 现已被弃用,因此不再有效。
  • 实际上,gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315) 更适合我。我的mac中的目录实际上是/usr/local/opt/v8@3.15
【解决方案4】:

也许它对某人有用,但我在安装 therubyracer 时遇到了问题(因为 libv8 的问题),解决方案是卸载我已安装的所有 libv8。安装 therubyracer

$ gem uninstall libv8
$ gem install therubyracer -v '0.12.0'
Fetching: libv8-3.16.14.7-x86_64-darwin-14.gem ( 57%)
Fetching: libv8-3.16.14.7-x86_64-darwin-14.gem (100%)
Successfully installed libv8-3.16.14.7-x86_64-darwin-14
Building native extensions.  This could take a while...
Successfully installed therubyracer-0.12.0
2 gems installed

我希望这对某人有所帮助。

【讨论】:

  • 这似乎对我有用。但是我想指出,卸载所有版本的 libv8 gem 的最佳方法是:gem uninstall libv8 -a -x。如果您使用 ruby​​ 版本管理器(例如 rbenv 等),那么这仅适用于您当前的 ruby​​ 版本(以防不明显)。
  • ? 这个解决方案对我有用 - El Capitan 10.11.6,Ruby - ruby​​ 1.9.3p448(2013-06-27 修订版 41675)
【解决方案5】:

这似乎已在上游修复。对我、@aurels、@Mike Causer 和 @Juanda 有用的是:

bundle update libv8

【讨论】:

    【解决方案6】:

    这在我的 Yosemite 和 Ruby 2.1.5(通过 RVM 的 Ruby)上非常适合我

    gem install libv8 -v '3.16.14.3' -- --with-system-v8
    

    早些时候它给了我错误Gem::Ext::BuildError: ERROR: Failed to build gem native extension. for libv8 gem version 3.16.14.3

    【讨论】:

      【解决方案7】:

      在我的优胜美地 Ruby 2.1.2 中只有这对我有用:

      gem install libv8 -v '3.16.14.3' -- --with-system-v8
      brew link --overwrite v8-315 --force
      gem install therubyracer -v '0.12.2' -- --with-system-v8
      

      【讨论】:

      • 只有这个解决了为ruby 1.9.3p484rubyracer 0.12.3安装rubyracer的问题
      【解决方案8】:

      rm Gemfile.lock 之后我可以继续使用 ruby​​ racer

      事先: 我通过brew install v8安装了v8,然后做了gem install libv8 -v '3.16.14.3' -- --with-system-v8

      我正在运行 10.10 Yosemite

      【讨论】:

        【解决方案9】:

        他们已在最新版本的 libv8 中更正了此问题。见:https://github.com/cowboyd/libv8/issues/123

        你应该从 github repo 安装,在 rails 我在我的 gemfile 中添加了这样一行 gem "libv8", git: "git://github.com/cowboyd/libv8.git", submodules: true

        编辑:

        这显然只能解决部分问题。我安装了新版本的libv8,但现在rubyracer 还在寻找我认为的另一个?还在研究中。

        【讨论】:

          【解决方案10】:

          我在优胜美地遇到了同样的问题。我的解决方案与上面显示的类似。

          使用gem uninstall libv8 删除可能已安装的任何内容。

          将rubyracer 保留在您的Gemfile 中,但删除对libv8 的任何显式引用。

          运行bundle install

          libv8 然后作为依赖项安装得很好。

          【讨论】:

          • 这是我的问题。我有多个版本的 libv8 互相争斗。清除它们并让 bundler 解决依赖关系是正确的做法。
          【解决方案11】:

          2018 年的更新答案。

          我在 High Sierra 上,使用 Homebrew 1.6.1

          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@3.15/
          

          对我有用。

          感谢@coding-addicted 的original answer

          【讨论】:

            【解决方案12】:

            经过几个小时的简单升级 ruby​​ 尝试:

            brew install ruby 
            

            然后将以下内容添加到gem文件中:

            gem 'libv8'  
            gem 'therubyracer' 
            

            【讨论】:

              【解决方案13】:

              提醒任何可能遇到我的问题的人:我最终在 RVM 中卸载了我的 ruby​​ 版本,然后重新安装了它。这似乎在最新版本的 xcode 工具中使用了正确的依赖项来编译 ruby​​。

              rvm list
              rvm uninstall ruby-x.x.x
              rvm install ruby-x.x.x
              

              【讨论】:

                【解决方案14】:

                我做了以下

                gem install therubyracer
                

                现在安装 therubyracer 0.12.1 安装依赖项 libv8 (3.16.14.7 x86_64-darwin-14) 安装没有错误。

                我是使用 ruby 2.1.5 完成的,我是通过以下方式安装的:

                CC=/usr/bin/gcc rbenv install 2.1.5
                

                我在运行 brew upgrade ruby-builds 之后所做的。

                安装ruby 2.1.5后,我也跑了

                gem upgrade --system
                

                获取rubygems-update 2.4.5

                【讨论】:

                  【解决方案15】:

                  这也是由于与 libv8 的一些冲突而发生的,尽管您只需为 ruby​​racer 分配一个版本,它就会被安装:

                  在 gemfile 中更改以下内容:

                  gem 'therubyracer', '~> 0.12.1'

                  并进行捆绑安装

                  【讨论】:

                    【解决方案16】:

                    根据以下评论,什么对我有用,

                    https://github.com/cowboyd/therubyracer/issues/304#issuecomment-62046085

                    是删除 Gemfile.lock 然后运行 ​​bundle install

                    【讨论】:

                      【解决方案17】:

                      这个解决方案对我有用

                      gem uninstall libv8
                      gem install therubyracer -v '0.12.1'
                          Fetching: libv8-3.16.14.19-x86_64-darwin-18.gem (100%)
                          Successfully installed libv8-3.16.14.19-x86_64-darwin-18
                          Building native extensions.  This could take a while...
                          Successfully installed therubyracer-0.12.1
                          Parsing documentation for libv8-3.16.14.19-x86_64-darwin-18
                          Installing ri documentation for libv8-3.16.14.19-x86_64-darwin-18
                          Parsing documentation for therubyracer-0.12.1
                          Installing ri documentation for therubyracer-0.12.1
                          Done installing documentation for libv8, therubyracer after 0 seconds
                          2 gems installed
                      gem install libv8 -v '3.16.14.17' -- --with-system-v8  (if the libv8 version required for your project is different from the one installed by rubyracer)
                      bundle install
                      

                      【讨论】:

                      • 请指出微小的变化是什么,并尝试解释它为什么起作用。由于您要回答一个 4 年前的问题,因此您还应该添加一些有关适用版本的详细信息(那时您的答案可能不相关)。
                      【解决方案18】:

                      使用 homebrew 的 v8 目录作为 --with-v8-dir=/usr/local/Cellar/v8@3.15/3.15.11.18_1,而不是 /usr/local/opt/v8-315,这对我来说对编码上瘾的答案有用。

                      这在 brew install 命令的Summary 中可见,brew install v8-315

                      【讨论】:

                        猜你喜欢
                        • 2015-05-24
                        • 2015-01-04
                        • 2014-07-28
                        • 1970-01-01
                        • 2014-12-25
                        • 1970-01-01
                        • 2020-10-06
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多