19

Ruby 2.4 で Rails 4.2 アプリを試してみたい。

ただし、実行しようとすると、json gem バージョン 1.8.3 のインストールに失敗するというエラーが表示されます。

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

    current directory: /Users/agrimm/.rbenv/versions/2.4.0-rc1/lib/ruby/gems/2.4.0/gems/json-1.8.3/ext/json/ext/generator
/Users/agrimm/.rbenv/versions/2.4.0-rc1/bin/ruby -r ./siteconf20161223-91367-cql0ne.rb extconf.rb
creating Makefile

current directory: /Users/agrimm/.rbenv/versions/2.4.0-rc1/lib/ruby/gems/2.4.0/gems/json-1.8.3/ext/json/ext/generator
make "DESTDIR=" clean

current directory: /Users/agrimm/.rbenv/versions/2.4.0-rc1/lib/ruby/gems/2.4.0/gems/json-1.8.3/ext/json/ext/generator
make "DESTDIR="
compiling generator.c
generator.c:861:25: error: use of undeclared identifier 'rb_cFixnum'
    } else if (klass == rb_cFixnum) {
                        ^
generator.c:863:25: error: use of undeclared identifier 'rb_cBignum'
    } else if (klass == rb_cBignum) {
                        ^
2 errors generated.
make: *** [generator.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/agrimm/.rbenv/versions/2.4.0-rc1/lib/ruby/gems/2.4.0/gems/json-1.8.3 for inspection.
Results logged to /Users/agrimm/.rbenv/versions/2.4.0-rc1/lib/ruby/gems/2.4.0/extensions/x86_64-darwin-14/2.4.0-static/json-1.8.3/gem_make.out

An error occurred while installing json (1.8.3), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.3'` succeeds before bundling.

これは、Fixnum と Bignum が Integer に統合されたためだと思います。

json がバージョン 2.0.0 でなければならないという制約を Gemfile に追加すると、Rails 4.2 には json ~> 1.7 が必要であり、2.0.0 は禁止されていると不平を言います。

Rails のメンテナーが Rails の 5.x 以外のバージョンに変更を加えるか、json gem のメンテナーが新しい非 2.x バージョンの gem を作成することを決定しない限り、私は運が悪いのでしょうか?

4

4 に答える 4

16

jsonジェムには1.8ブランチの修正があります。近いうちに gem としてリリースされることを願っていますが、それまでの間、Gemfile で直接使用できます。

gem 'json', github: 'flori/json', branch: 'v1.8'

Rails はまた、最新の公式gem リリースから約 1 週間後に修正をブランチにマージしました。新しいgemもすぐにリリースされることを願っていますが、これはGemfileで役立つかもしれません:4-2-stable4.2.x

gem 'rails', github: 'rails/rails', branch: '4-2-stable'

arel最後に、 git ソースからもロードする必要がある場合があります。

gem 'arel', github: 'rails/arel', branch: '6-0-stable'

これら 3 つの変更により、アプリを起動してデータベースにクエリを実行できましたが、整数の統合に関連する他の問題に遭遇しました。この変更により、いくつかの波が発生するようです。

于 2016-12-26T10:10:49.580 に答える