2016-12-23 11 views
16

मैं रुबी 2.4 पर एक रेल 4.2 ऐप आज़माकर देखना चाहता हूं।रूबी 2.4 पर रेल 4.2 ऐप चलाने के लिए संभव है?

हालांकि, जब मैं इसे करने का प्रयास करता हूं, तो मुझे जेसन मणि संस्करण 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. 

जो मुझे लगता है कि फिक्सनम और बिग्नम इंटीजर में एकीकरण के कारण है।

यदि मैं जेमफ़ाइल में एक बाधा डालता हूं कि जेसन को संस्करण 2.0.0 होना है, तो यह शिकायत करता है कि रेल 4.2 को जेसन ~> 1.7 की आवश्यकता है, जो 2.0.0 को रोकता है।

क्या मैं भाग्य से बाहर हूं जब तक रेल के रखरखाव रेल के गैर-5.x संस्करण में परिवर्तन करने का निर्णय नहीं लेते हैं, या जेसन मणि के रखरखाव उनके नए गैर-2.x संस्करण को बनाने का निर्णय लेते हैं मणि?

उत्तर

4

ऐसा लगता है कि इस समय यह संभव नहीं होगा (हालांकि यह अजीब लगता है)।

Changelog for the JSON gem देखें। जेसन 2.0.0 रूबी 2.4 के लिए संगतता जोड़ता है, लेकिन रेल 4.2 ने जेसन को 1.x

16

json मणि 1.8 शाखा पर एक फिक्स है। उम्मीद है कि यह जल्द ही एक रत्न के रूप में जारी किया जाएगा, लेकिन इस बीच आप अपने Gemfile में सीधे इसका इस्तेमाल कर सकते हैं:

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

रेल भी ताजा सरकारी 4.2.x मणि रिलीज होने के बाद एक सप्ताह के बारे में 4-2-stable शाखा को merged a fix है। उम्मीद है कि वे भी जल्द ही एक नया मणि जारी करेंगे, लेकिन यह आपके Gemfile में मदद कर सकता है:

gem 'arel', github: 'rails/arel', branch: '6-0-stable' 
उन के साथ

:

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

अंत में, आप भी एक Git स्रोत से arel लोड करने के लिए आवश्यकता हो सकती है तीन परिवर्तन मैं अपने ऐप को बूट करने और डेटाबेस से पूछने में सक्षम था, लेकिन फिर अन्य इंटीजर एकीकरण संबंधी मुद्दों में भाग गया। ऐसा लगता है कि कुछ बदलावों के कारण यह बदलाव आया है।

+0

का समर्थन करता है इस उत्तर पोस्ट के बाद से है के साथ संभव है , जेसन ('1.8.5') और आर्ल (' 6.0.4') के 2.4 संगत संस्करण जारी किए गए हैं। जिस चीज पर हम अभी इंतजार कर रहे हैं वह एक नई रेल '4.2.x' रिलीज है। –

+1

.. और अब रेल 4.2.8 जारी किया गया है, जो रूबी 2.4 पर ऐप्स बूट करने के लिए पर्याप्त होना चाहिए। यह संभावना है कि कुछ सेकंड और तीसरी स्तर की निर्भरता बहिष्कार प्रिंट करेगी, लेकिन उम्मीद है कि वे घातक नहीं हैं –

4

रेल-4.2.8 .इस को अपग्रेड रेल पहले 4.2.x संस्करण है कि आधिकारिक तौर पर माणिक 2.4

संबंधित मुद्दे