ruby-on-rails – 无法在centos上安装therubyracer(V8和GCC出错)
发布时间:2020-12-17 03:36:31 所属栏目:百科 来源:网络整理
导读:我正在尝试在我的centos服务器上安装the rubyracer,而且我遇到了hella问题. $gem install therubyracerBuilding native extensions. This could take a while...ERROR: Error installing therubyracer: ERROR: Failed to build gem native extension. /usr/l
我正在尝试在我的centos服务器上安装the
rubyracer,而且我遇到了hella问题.
$gem install therubyracer Building native extensions. This could take a while... ERROR: Error installing therubyracer: ERROR: Failed to build gem native extension. /usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb checking for main() in -lpthread... yes checking for v8.h... no *** extconf.rb failed *** Could not create Makefile due to some reason,probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby --with-pthreadlib --without-pthreadlib --enable-debug --disable-debug --with-v8-dir --without-v8-dir --with-v8-include --without-v8-include=${v8-dir}/include --with-v8-lib --without-v8-lib=${v8-dir}/lib /usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/gems/therubyracer-0.11.0/ext/v8/build.rb:42:in `build_with_system_libv8': unable to locate libv8. Please see output for details (RuntimeError) from extconf.rb:22:in `<main>' The Ruby Racer requires libv8 ~> 3.11.8 to be present on your system in order to compile and link,but it could not be found. In order to resolve this,you will either need to manually install an appropriate libv8 and make sure that this build process can find it. If you install it into the standard system path,then it should just be picked up automatically. Otherwise,you'll have to pass some extra flags to the build process as a hint. If you don't want to bother with all that,there is a rubygem that will do all this for you. You can add following line to your Gemfile: gem 'libv8','~> 3.11.8' We hope that helps,and we apologize,but now we have to push the eject button on this install. thanks,The Mgmt. Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/gems/therubyracer-0.11.0 for inspection. Results logged to /usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/gems/therubyracer-0.11.0/ext/v8/gem_make.out 那么我试着安装这个: [root@allthingswebdesign current]# gem install libv8 Building native extensions. This could take a while... ERROR: Error installing libv8: ERROR: Failed to build gem native extension. /usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb creating Makefile which: no g++44 in (/usr/local/rvm/gems/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin) which: no g++46 in (/usr/local/rvm/gems/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin) which: no g++48 in (/usr/local/rvm/gems/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin) Unable to find a compiler officially supported by v8. It is recommended to use GCC v4.4 or higher Using compiler: g++ Traceback (most recent call last): File "build/gyp/gyp",line 15,in ? import gyp File "build/gyp/pylib/gyp/__init__.py",line 8,in ? import gyp.input File "build/gyp/pylib/gyp/input.py",line 14,in ? import gyp.common File "build/gyp/pylib/gyp/common.py",line 375 with open(source_path) as source_file: ^ SyntaxError: invalid syntax gmake: *** [out/Makefile.x64] Error 1 GYP_GENERATORS=make build/gyp/gyp --generator-output="out" build/all.gyp -Ibuild/standalone.gypi --depth=. -Dv8_target_arch=x64 -S.x64 -Dhost_arch=x64 Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/gems/libv8-3.11.8.4 for inspection. Results logged to /usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/gems/libv8-3.11.8.4/ext/libv8/gem_make.out [root@allthingswebdesign current]# 输出g $which g++ /usr/bin/g++ $/usr/bin/g++ --version g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52) Copyright (C) 2006 Free Software Foundation,Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [root@allthingswebdesign current]# which g++ /usr/bin/g++ [root@allthingswebdesign current]# which g++44 /usr/bin/g++44 [root@allthingswebdesign current]# [root@allthingswebdesign current]# cd /usr/bin/ [root@allthingswebdesign bin]# ls -al g++* -rwxr-xr-x 4 root root 218432 May 10 2012 g++ -rwxr-xr-x 2 root root 263704 Feb 21 2012 g++44 lrwxrwxrwx 1 root root 12 Dec 9 17:21 g++-4.4 -> /usr/bin/g++ 您要求的信息: [root@allthingswebdesign node-v0.8.15]# which gcc /usr/bin/gcc [root@allthingswebdesign node-v0.8.15]# which g++ /usr/bin/g++ [root@allthingswebdesign node-v0.8.15]# which g++44 /usr/bin/g++44 [root@allthingswebdesign node-v0.8.15]# ls -la /usr/bin/g++ -rwxr-xr-x 4 root root 218432 May 10 2012 /usr/bin/g++ [root@allthingswebdesign node-v0.8.15]# 编辑 [root@allthingswebdesign famnfo.com]# gem install therubyracer Fetching: therubyracer-0.11.0.gem (100%) Building native extensions. This could take a while... ERROR: Error installing therubyracer: ERROR: Failed to build gem native extension. /usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb checking for main() in -lpthread... yes creating Makefile make compiling accessor.cc accessor.cc:181:2: warning: no newline at end of file compiling array.cc array.cc:26:2: warning: no newline at end of file compiling backref.cc backref.cc:45:2: warning: no newline at end of file compiling constants.cc constants.cc:34:2: warning: no newline at end of file compiling constraints.cc constraints.cc:52:2: warning: no newline at end of file compiling context.cc compiling date.cc date.cc:18:2: warning: no newline at end of file compiling exception.cc exception.cc:38:2: warning: no newline at end of file compiling external.cc external.cc:43:2: warning: no newline at end of file compiling function.cc function.cc:58:2: warning: no newline at end of file compiling gc.cc gc.cc:43:2: warning: no newline at end of file compiling handles.cc handles.cc:34:2: warning: no newline at end of file compiling heap.cc heap.cc:31:2: warning: no newline at end of file compiling init.cc init.cc:39:2: warning: no newline at end of file compiling invocation.cc invocation.cc:86:2: warning: no newline at end of file compiling locker.cc locker.cc:77:2: warning: no newline at end of file compiling message.cc message.cc:51:2: warning: no newline at end of file compiling object.cc object.cc:334:2: warning: no newline at end of file compiling primitive.cc primitive.cc:8:2: warning: no newline at end of file compiling rr.cc rr.cc:83:2: warning: no newline at end of file compiling script.cc script.cc:80:17: warning: no newline at end of file compiling signature.cc signature.cc:18:2: warning: no newline at end of file compiling stack.cc stack.cc:76:2: warning: no newline at end of file compiling string.cc string.cc:47:17: warning: no newline at end of file compiling template.cc template.cc:175:2: warning: no newline at end of file compiling trycatch.cc trycatch.cc:87:2: warning: no newline at end of file compiling v8.cc v8.cc:87:2: warning: no newline at end of file compiling value.cc value.cc:239:2: warning: no newline at end of file linking shared-object v8/init.so /usr/bin/ld:/usr/local/rvm/gems/ruby-1.9.3-p125/gems/libv8-3.11.8.3-x86_64-linux/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a: file format not recognized; treating as linker script /usr/bin/ld:/usr/local/rvm/gems/ruby-1.9.3-p125/gems/libv8-3.11.8.3-x86_64-linux/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a:1: syntax error collect2: ld returned 1 exit status make: *** [init.so] Error 1 Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.3-p125/gems/therubyracer-0.11.0 for inspection. Results logged to /usr/local/rvm/gems/ruby-1.9.3-p125/gems/therubyracer-0.11.0/ext/v8/gem_make.out 解决方法
libv8无法安装,因为Centos附带Python 2.4.您至少需要Python 2.6来编译它.你可以这样做:
yum install python26 ln -s /usr/bin/python26 /usr/local/bin/python 更简单地说,您可以从其二进制包安装libv8: gem install libv8 --version=3.11.8.3 也就是说,即使完成了这项工作,即使安装了libv8,也可以安装或不安装therubyracer;我一直有零星的问题,但只在某些机器上,并且还没有找出共同的根本原因.我决定在这些机器上编译node.js. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |