mysql - 安装gem报错
ringa_lee
ringa_lee 2017-04-17 16:23:08
0
1
736

1.相应的环境: 
   ubuntu12.04 ruby 2.4
2.通过 

bundle install --deployment --without development test postgres aws

安装gem的时候报错:

 

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/home/git/gitlab/vendor/bundle/ruby/2.4.0/gems/json-1.8.1/ext/json/ext/generator
/usr/local/bin/ruby -r ./siteconf20170122-2448-oz1rn0.rb extconf.rb
creating Makefile

current directory:
/home/git/gitlab/vendor/bundle/ruby/2.4.0/gems/json-1.8.1/ext/json/ext/generator
make "DESTDIR=" clean

current directory:
/home/git/gitlab/vendor/bundle/ruby/2.4.0/gems/json-1.8.1/ext/json/ext/generator
make "DESTDIR=" compiling generator.c In file included from
generator.c:1:0: ../fbuffer/fbuffer.h: In function 'fbuffer_to_s':
../fbuffer/fbuffer.h:175:47: error: macro "rb_str_new" requires 2
arguments, but only 1 given ../fbuffer/fbuffer.h:175:20: warning:
initialization makes integer from pointer without a cast [enabled by
default] generator.c: In function 'generate_json': generator.c:840:25:
error: 'rb_cFixnum' undeclared (first use in this function)
generator.c:840:25: note: each undeclared identifier is reported only
once for each function it appears in generator.c:842:25: error:
'rb_cBignum' undeclared (first use in this function) generator.c: At
top level: cc1: warning: unrecognized command line option
"-Wno-self-assign" [enabled by default] cc1: warning: unrecognized
command line option "-Wno-constant-logical-operand" [enabled by
default] cc1: warning: unrecognized command line option
"-Wno-parentheses-equality" [enabled by default] cc1: warning:
unrecognized command line option "-Wno-tautological-compare" [enabled
by default] make: * [generator.o] Error 1

make failed, exit code 2

Gem files will remain installed in
/home/git/gitlab/vendor/bundle/ruby/2.4.0/gems/json-1.8.1 for

  1. Results logged to
    /home/git/gitlab/vendor/bundle/ruby/2.4.0/extensions/x86-linux/2.4.0-static/json-1.8.1/gem_make.out

An error occurred while installing json (1.8.1), and Bundler cannot

  1. Make sure that gem install json -v '1.8.1' succeeds before bundling.

但是看到Make sure that gem install json -v '1.8.1' succeeds before bundling.

于是我就手动安装了gem install json -v '1.8.1' ,
依然报错:

Building native extensions.  This could take a while...
ERROR:  Error installing json:
    ERROR: Failed to build gem native extension.

    current directory: /usr/local/lib/ruby/gems/2.4.0/gems/json-1.8.1/ext/json/ext/generator
/usr/local/bin/ruby -r ./siteconf20170122-3475-aueo31.rb extconf.rb
creating Makefile

current directory: /usr/local/lib/ruby/gems/2.4.0/gems/json-1.8.1/ext/json/ext/generator
make "DESTDIR=" clean

current directory: /usr/local/lib/ruby/gems/2.4.0/gems/json-1.8.1/ext/json/ext/generator
make "DESTDIR="
compiling generator.c
In file included from generator.c:1:0:
../fbuffer/fbuffer.h: In function 'fbuffer_to_s':
../fbuffer/fbuffer.h:175:47: error: macro "rb_str_new" requires 2 arguments, but only 1 given
../fbuffer/fbuffer.h:175:20: warning: initialization makes integer from pointer without a cast [enabled by default]
generator.c: In function 'generate_json':
generator.c:840:25: error: 'rb_cFixnum' undeclared (first use in this function)
generator.c:840:25: note: each undeclared identifier is reported only once for each function it appears in
generator.c:842:25: error: 'rb_cBignum' undeclared (first use in this function)
generator.c: At top level:
cc1: warning: unrecognized command line option "-Wno-self-assign" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-constant-logical-operand" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-parentheses-equality" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-tautological-compare" [enabled by default]
make: *** [generator.o] Error 1

make failed, exit code 2

Gem files will remain installed in /usr/local/lib/ruby/gems/2.4.0/gems/json-1.8.1 for inspection.
Results logged to /usr/local/lib/ruby/gems/2.4.0/extensions/x86-linux/2.4.0-static/json-1.8.1/gem_make.out

本人并不太了解ruby,gem,我只是安装依赖ruby的软件时候遇到的。请哪位大神帮忙看一下,该问题应该怎么解决?还有讲讲ruby , gem , ruby-rails,bundle之间的关系!
谢谢!

ringa_lee
ringa_lee

ringa_lee

全部回覆(1)
Peter_Zhu

json-1.8.1ruby-2.4.0 不相容,想要順利安裝,可以試試下面兩個方法:json-1.8.1ruby-2.4.0 不兼容,想要顺利安装,可以尝试一下下面两个办法:

  1. 降低 Ruby 的版本。查了一下,1.8.1 已经很老了,与 2.2.x 版本不兼容,需要降到 2.1.x 版本。

  2. 升级 json1.8.5 版本。执行 bundle update json,然后 bundle install。因为不知道你的 Gemfile 是怎么写的,无法确定有没有明确依赖 1.8.1 版本。所以这个方法不一定成功。

Ruby 是语言。
gem 是一组 Ruby 程序,类似于「包」的概念。
RubyGemsRuby 的包管理器,用来管理和安装 gems 的。
bundle

  1. 降低 Ruby 的版本。查了一下,1.8.1 已經很老了,與 2.2.x 版本不相容,需要降到 2.1.x 版本。 🎜
  2. 🎜升級 json1.8.5 版本。執行 bundle update json,然後 bundle install。因為我不知道你的 Gemfile 是怎麼寫的,無法確定有沒有明確依賴 1.8.1 版本。所以這個方法不一定會成功。 🎜
🎜Ruby 是語言。
gem 是一組 Ruby 程序,類似「包」的概念。
RubyGemsRuby 的套件管理器,用來管理和安裝 gems 的。
bundle 是用來管理一個專案的 gems 的,確保能夠正確地安裝專案依賴,確保能夠運行正確的套件。 🎜
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!