【问题标题】: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%)
构建原生扩展。这可能需要一段时间...
错误:安装 rubyracer 时出错:
错误:无法构建 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