【问题标题】:Failed to build gem native extensions of jquery-rails after installing Python 2.7安装 Python 2.7 后无法构建 jquery-rails 的 gem 本机扩展
【发布时间】:2014-08-27 22:46:50
【问题描述】:

使用:

红宝石:2.1.1 导轨:4 操作系统:Debian Wheezy

简短的问题故事:

我安装了 Python 2.7,现在我的 bundle install 将不再成功。 它卡在:

使用 jquery-rails (3.1.1) Gem::Ext::BuildError: 错误: 无法构建 gem 原生扩展。

长问题故事:

我想安装“therubyracer”,因为我收到了这个错误:
ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime.

在安装过程中出现以下错误:

developer@vm2458:~/srv/dash/dashboard$ gem install 'therubyracer' 获取:ref-1.0.5.gem (100%) 成功安装 ref-1.0.5 获取:libv8-3.16.14.3.gem (100%) 构建原生扩展。这可能需要一段时间... 错误:安装 ruby​​racer 时出错: 错误:无法构建 gem 原生扩展。 /home/developer/.rvm/rubies/ruby-2.1.1/bin/ruby extconf.rb 创建 Makefile /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:58:in `setup_python!': libv8 需要安装 python 2 才能构建,但目前不可用(RuntimeError) 来自 /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:42:in `block in build_libv8!' 来自 /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:40:in `chdir' 来自/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:40:in `build_libv8!' 来自 /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:24:in `install!' 来自 extconf.rb:7:in `' extconf 失败,退出代码 1 Gem 文件将继续安装在 /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3 以供检查。 结果记录到 /home/developer/.rvm/gems/ruby-2.1.1/extensions/x86-linux/2.1.0/libv8-3.16.14.3/gem_make.out

所以我想我应该安装 Python 2。
谷歌把我带到这里:https://gist.github.com/whop/2659457
在我回到bundle install 之前,一切似乎都很顺利。

developer@vm2458:~/srv/dash/dashboard$ 捆绑安装 从 https://rubygems.org/ 获取 gem 元数据............ 从 https://rubygems.org/ 获取其他元数据。 解决依赖关系... (...) 使用 jquery-rails (3.1.1) Gem::Ext::BuildError: 错误: 无法构建 gem 原生扩展。 /home/developer/.rvm/rubies/ruby-2.1.1/bin/ruby extconf.rb 创建 Makefile 为 ia32 编译 v8 使用 python 2.7.3 使用编译器:/usr/bin/g++ g++:内部编译器错误:被杀死(程序 cc1plus) 请提交完整的错误报告, 如果合适,使用预处理的源。 有关说明,请参阅。 make[1]: *** [/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src /hydrogen-instructions.o] 错误 4 make: *** [ia32.release] 错误 2 GYP_GENERATORS=制作\ 构建/gyp/gyp --generator-output="out" build/all.gyp \ -Ibuild/standalone.gypi --depth=。 \ -Dv8_target_arch=ia32\ -S.ia32 -Dv8_enable_backtrace=1 -Dv8_can_use_vfp2_instructions=true -Darm_fpu=vfpv2 -Dv8_can_use_vfp3_instructions=true -Darm_fpu=vfpv3 make[1]: 进入目录`/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out' CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/allocation.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/atomicops_internals_x86_gcc.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/bignum.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/bignum-dtoa。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/cached-powers。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/conversions.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/diy-fp。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/dtoa.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/fast-dtoa。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/fixed-dtoa。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/once.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/preparse-data。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/preparser.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/preparser-api。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/scanner.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/strtod.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/token.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/unicode.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/utils.o AR(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/tools/gyp/libpreparser_lib.a CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser/preparser/preparser-process。 ○ 链接(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/preparser CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/accessors.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/allocation.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/api.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/assembler.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/ast.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/atomicops_internals_x86_gcc.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/bignum-dtoa。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/bignum.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/bootstrapper.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/builtins.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/cached-powers。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/checks.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/circular-queue。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/code-stubs。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/code-stubs-氢.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/codegen.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/compilation-cache。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/compiler.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/contexts.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/conversions.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/counters.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/cpu-profiler。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/data-flow。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/date.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/dateparser.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/debug-agent。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/debug.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/deoptimizer.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/disassembler.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/diy-fp。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/dtoa.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/elements-kind。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/elements.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/execution.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/extensions/externalize-字符串扩展名.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/extensions/gc-扩展名.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/extensions/statistics-扩展名.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/factory.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/fast-dtoa。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/fixed-dtoa。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/flags.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/frames.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/full-codegen。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/func-name-推断者.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/gdb-jit。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/global-handles。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/handles.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/heap-profiler。 ○ CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/heap.o CXX(目标)/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/hydrogen-instructions。 ○ make[1]: 离开目录`/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out' /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:36:in `block in verify_installation!': libv8 没有正确安装,需要二进制v8 存档 '/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/tools/gyp/libv8_base.a'to存在,但未找到(Libv8::Location::Vendor::ArchiveNotFound) 来自 /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `each' 来自 /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `verify_installation!' 来自 /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:26:in `install!' 来自 extconf.rb:7:in `' extconf 失败,退出代码 1 Gem 文件将继续安装在 /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3 以供检查。 结果记录到 /home/developer/.rvm/gems/ruby-2.1.1/extensions/x86-linux/2.1.0/libv8-3.16.14.3/gem_make.out 安装 libv8 (3.16.14.3) 时出错,Bundler 无法继续。 在捆绑之前确保 `gem install libv8 -v '3.16.14.3'` 成功。

所以我运行gem install libv8 -v '3.16.14.3' 以确保它成功:

developer@vm2458:~/srv/dash/dashboard$ gem install libv8 -v '3.16.14.3' 构建原生扩展。这可能需要一段时间... developer@vm2458:~/srv/dash/dashboard$

看起来不错,对吧?

但是,错误仍然存​​在。

这个帖子建议手动安装 therubyracer,由于某种原因这对我不起作用。也许是因为我使用的是 Ruby 2.1.1?我不知道。

谁能帮我解决这个问题或指出(可能的)正确方向?

【问题讨论】:

    标签: ruby-on-rails ruby python-2.7 ruby-on-rails-4 rubygems


    【解决方案1】:

    Rubyracer 对 Ruby 没有版本依赖性,因此 2.1.1 应该可以工作。您列出的步骤对我来说看起来不错。

    -手动安装 ruby​​racer 时遇到什么错误?

    -您也可以尝试使用最新版本的 jquery-rails:http://rubygems.org/gems/jquery-rails

    【讨论】:

      猜你喜欢
      • 2016-11-23
      • 2013-10-16
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      相关资源
      最近更新 更多