2017-02-20 6 views
5

[संस्करण जानकारी]माणिक के साथ json 1.8.3 स्थापित करने में त्रुटि 2.4

माणिक 2.4.0p0 (2016/12/24 संशोधन 57,164) [x86_64-linux] /मणि 2.0.3/ Windows 10

मैं bundle install भाग गया और यह gem install json -v '1.8.3'

चलाने के लिए मुझे बताया था मैंने वह किया है और एक मणि देशी विस्तार त्रुटि का निर्माण करने में विफल हो गया।

Building native extensions. This could take a while... 

ERROR: Error installing json: 
     ERROR: Failed to build gem native extension. 
    /home/ec2-user/.rvm/rubies/ruby-2.4.0/bin/ruby extconf.rb 
creating Makefile 

make 
compiling generator.c 
generator.c: In function ‘generate_json’: 
generator.c:861:25: error: ‘rb_cFixnum’ undeclared (first use in this function) 
    } else if (klass == rb_cFixnum) { 
         ^
generator.c:861:25: note: each undeclared identifier is reported only once for each function it appears in 
generator.c:863:25: error: ‘rb_cBignum’ undeclared (first use in this function) 
    } else if (klass == rb_cBignum) { 
         ^
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 

Gem files will remain installed in /home/ec2-user/.rvm/gems/ruby-2.4.0/gems/json-1.8.3 for inspection. 
Results logged to /home/ec2-user/.rvm/gems/ruby-2.4.0/gems/json-1.8.3/ext/json/ext/generator/gem_make.out 

मैंने कई दस्तावेज़ों की जांच की है। मैंने देवकिट और जेसन 1.8.5 स्थापित किया लेकिन मेरा प्रोजेक्ट संदेश रखता है कि "जेसन 1.8.3 इंस्टॉल करें" मैं इस समस्या को कैसे हल कर सकता हूं ??

/home/ec2-user/.rvm/gems/ruby-2.4.0/gems/json-1.8.3 शामिल हैं:

../ 
./ 
data/ 
diagrams/ 
ext/ 
java/ 
lib/ 
tests/ 
tools/ 
install.rb* 
.gitignore 
.travis.yml 
CHANGES 
COPYING 
COPYING-json-jruby 
GPL 
Gemfile 
README-json-jruby.markdown 
README.rdoc 
Rakefile 

/home/ec2-user/.rvm/gems/ruby-2.4.0/gems/json-1.8.3/ext/json/ext/generator/gem_make.out शामिल हैं:

user/.rvm/gems/ruby-2.4.0/gems/json-1.8.3/ext/json/ext/generator/gem_make.out 
/home/ec2-user/.rvm/rubies/ruby-2.4.0/bin/ruby extconf.rb 
creating Makefile 

make 
compiling generator.c 
generator.c: In function ‘generate_json’: 
generator.c:861:25: error: ‘rb_cFixnum’ undeclared (first use in this function) 
    } else if (klass == rb_cFixnum) { 
         ^
generator.c:861:25: note: each undeclared identifier is reported only once for each function it appears in 
generator.c:863:25: error: ‘rb_cBignum’ undeclared (first use in this function) 
    } else if (klass == rb_cBignum) { 
         ^
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 
+0

पहला सवाल यह है कि आपको JSON मणि की आवश्यकता क्यों है? रूबी में JSON समर्थन अंतर्निहित है। दूसरा, पुराने संस्करण का उपयोग क्यों करें? रूबी 2.4.0 ने कई इंटर्न बदल दिए जिन्हें उस मणि के नवीनतम संस्करण का उपयोग करने की आवश्यकता हो सकती है। यदि आप इस विशेष संस्करण पर कठोर निर्भरता से फंस गए हैं तो आपको रूबी 2.3.एक्स या कुछ ऐसा करने की आवश्यकता हो सकती है जब तक कि वह उस प्रतिबंध को हटा नहीं ले लेता है। – tadman

+0

@tadman मुझे JSON संस्करण 1.8.3 की आवश्यकता है क्योंकि पुट्टी को मुझे आवश्यकता है। अगर मैं 'बंडल इंस्टॉल' चलाता हूं, तो मुझे जेएसओएन 1.8.3 सेट करने के लिए पुटी ऑर्डर करें। मैंने अन्य संस्करणों को स्थापित किया (2.0.3 और 2.0।2) लेकिन यह कहता है "JSON 1.8.3 इंस्टॉल करें" .. असल में मैं एक नौसिखिया हूं और केवल दिशानिर्देशों का पालन करने के बाद, इसलिए मैं समस्याओं से निपटने में लचीला नहीं हूं। –

उत्तर

7

मैं हाल ही में एक ही मुद्दे में भाग गया, कोशिश करते हैं और आप उपयोग कर रहे है जो कुछ भी मणि कि के एक नए संस्करण है या नहीं देखना जेसन 1.8.3 पर निर्भर करता है। ऐसा इसलिए हो रहा है क्योंकि रूबी 2.4 एकीकृत Fixnum and Bignum into Integer। यदि आप json 1.8.5 या उच्चतर में अपग्रेड करने में सक्षम हैं, तो इसे आपकी समस्याओं को ठीक करने में मदद करनी चाहिए।

तुम भी कोशिश करते हैं और मणि आप उपयोग कर रहे अद्यतन करें और संस्करण की कमी आराम करने के लिए कोशिश कर सकते इसलिए की तरह (मैं इस पाया है परियोजनाओं की एक बहुत कुछ के साथ काम करने के लिए, लेकिन सभी नहीं):

gem 'json', '>= 1.8' 
+0

मैंने मणि के नए संस्करण को स्थापित करने का प्रयास किया लेकिन यह मुझे यह त्रुटि दे दी। –

+0

#

+0

@ 김혜진 यह एक नई समस्या है, इसलिए कम से कम आप कहीं और हो रहे हैं के लिए अपरिभाषित विधि 'source_paths'। आम तौर पर यह रूबीजम्स के साथ बातचीत करने और पुराने संस्करण होने की उम्मीद के साथ एक मुद्दा है। – tadman

0

मैंने जेसन 1.8.5 की स्थापना को मजबूर कर दिया और Gemfile.lock में प्रविष्टि को बदल दिया, अब काम कर रहा है।

0

मुझे एक ही समस्या का सामना करना पड़ा। संभव समाधान हम पहले मणि

"gem uninstall json" 

से json निकालना होगा और फिर स्थापित

"sudo bundle install" 

sudo जोड़ने के लिए मत भूलना है। सुडो के बिना यह स्थापित करने में विफल हो जाएगा।

+1

'बंडलर को रूट के रूप में न चलाएं। यदि आवश्यक हो तो बंडलर सूडो के लिए पूछ सकता है, और रूट के रूप में आपके बंडल को स्थापित करने से इस मशीन पर सभी गैर-रूट उपयोगकर्ताओं के लिए इस एप्लिकेशन को तोड़ दिया जाएगा। – Magicode

2

Gemfile.lock को हटाने का प्रयास करें और फिर बंडल कमांड चलाएं। यह किसी समस्या के बिना जेसन (यानी 1.8.6) के एक अलग संस्करण का उपयोग करना चाहिए।

+0

यह एकमात्र समाधान था जो मेरे लिए काम करता था। धन्यवाद। – guero64

0

मैंने निम्न चरणों का पालन किया: उपरोक्त आदेश को gemfile (मणि 'json', '> = 1.8') में डालें और रन बंडल इंस्टॉल में त्रुटि की स्थिति के साथ मुझे बंडल अद्यतन और स्थापित निर्भरताओं का एहसास हुआ।

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