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

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 と互換性がありません。スムーズにインストールしたい場合は、次の 2 つの方法を試してください:

  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 のパッケージ マネージャーであり、gem の管理とインストールに使用されます。
bundle はプロジェクトの gem を管理するために使用され、プロジェクトの依存関係が正しくインストールされ、正しいパッケージが実行できるようにします。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!