अपरिभाषित विधि `source_index’ जेम के लिए: मॉड्यूल (NoMethodError)


132

मैं एक रेल 2.3.5 अनुप्रयोग चला रहा हूँ और स्क्रिप्ट / सर्वर चलाने पर मुझे निम्नलिखित दिखाया गया है:

./script/../config/../vendor/rails/railties/lib/rails/gem_dependency.rb:21:in `add_frozen_gem_path': undefined method `source_index' for Gem:Module (NoMethodError)
    from ./script/../config/boot.rb:60:in `load_initializer'
    from ./script/../config/boot.rb:44:in `run'
    from ./script/../config/boot.rb:17:in `boot!'
    from ./script/../config/boot.rb:123
    from script/server:2:in `require'
    from script/server:2

अगर मैं boot.rb (रेल :: GemD dependency.add_frozen_gem_path) में लाइन 60 पर टिप्पणी करता हूं और स्क्रिप्ट / सर्वर चलाता हूं, तो मुझे यह मिलता है:

=> Booting WEBrick
=> Rails 2.3.5 application starting on http://0.0.0.0:3000
./script/../config/../vendor/rails/railties/lib/rails/gem_dependency.rb:21:in `add_frozen_gem_path': undefined method `source_index' for Gem:Module (NoMethodError)
    from ./script/../config/../vendor/rails/railties/lib/initializer.rb:298:in `add_gem_load_paths'
    from ./script/../config/../vendor/rails/railties/lib/initializer.rb:132:in `process'
    from ./script/../config/../vendor/rails/railties/lib/initializer.rb:113:in `send'
    from ./script/../config/../vendor/rails/railties/lib/initializer.rb:113:in `run'
    from /home/developer/bigpink/config/environment.rb:13
    from /home/developer/bigpink/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
    from /home/developer/bigpink/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
    from /home/developer/bigpink/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
    from /home/developer/bigpink/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
    from /home/developer/bigpink/vendor/rails/railties/lib/commands/server.rb:84
    from script/server:3:in `require'
    from script/server:3

तो, वास्तव में यकीन नहीं है कि क्या करना है। आशा है कि मैं कुछ त्वरित सहायता प्राप्त कर सकता हूं। धन्यवाद!

जवाबों:


294

मैं सिर्फ इस समस्या में भाग गया, जबकि REE 1.8.7 से 1.9.3-p385 तक एक पुराने रेल एप्लिकेशन को अपग्रेड करने की कोशिश कर रहा था। अजीब तरह से, रूबी 1.9.3-p327 ठीक काम करता है। माणिक -1.13-p385 ने मेरे लिए RubyGems संस्करण 2.0.2 स्थापित किया था और 1.9.3-p327 ने RubyGems v1.8.23 स्थापित किया था।

Gem.source_indexकुछ समय के लिए पदावनत कर दिया गया है, लेकिन चूंकि रेल 2.3 को महत्वपूर्ण सुरक्षा पैच के अलावा कोई अपडेट नहीं मिल रहा है, इसलिए यह कभी भी तय नहीं होगा। RubyGems v2.0 ने आखिरकार उस पद्धति को हटा दिया। rubygems2.0.0 से पहले किसी भी संस्करण के लिए डाउनग्रेड , 1.8.25 की तरह अब के लिए कार्यक्षमता वापस पाने के लिए। आप एक संगत संस्करण का उपयोग कर प्राप्त कर सकते हैं gem update --system 1.8.25

एक तरफ बहुत महत्वपूर्ण के रूप में, रेल 2.3.5 को न्यूनतम 2.3.17 पर अद्यतन करने की आवश्यकता है। महत्वपूर्ण सुरक्षा कमजोरियां हैं जो आपको कुछ बहुत ही बुरे हमलों के लिए खोलती हैं। लंबी अवधि में, 3.x में अपग्रेड करने के लिए एक बहुत मजबूत आवश्यकता पर विचार किया जाना चाहिए।


आपको बहुत - बहुत धन्यवाद! इसने पूरी तरह से काम किया। और हां, धन्यवाद, मैं 2.3.17 में अपग्रेड करने के बीच में हूं, और फिर नवीनतम 3.x पर।
noodleboy347

@uxp इस मुद्दे के लिए कोई सुझाव: stackoverflow.com/questions/15374188/…
विकसित

87
आरवीएम का उपयोग करने वाला कोई भी माणिकrvm rubygems latest-1.8 को डाउनग्रेड कर सकता है और इस मुद्दे को ठीक कर सकता है।
मार्टिन

1
मार्टिन की टिप्पणी (आरवीएम का उपयोग करने वाला कोई भी व्यक्ति रुबिम रूम्स को लेटेस्ट -१. to से रूबीज को डाउनग्रेड करने और इस मुद्दे को ठीक करने के लिए कह सकता है।) ने मेरी समस्या को हल करने में मदद की, जहां मैं कुछ घंटों से अटका हुआ था। बहुत बहुत धन्यवाद।
प्राजक्ता P

30
माणिक्य को अपग्रेड करने के लिए मजबूर करने की आवश्यकता है:rvm rubygems --force latest-1.8
मैट व्हाइट

28

rvm उपयोगकर्ताओं के लिए,

rvm install rubygems 1.8.2 --force

1
मुझे यह काम करने के लिए 1.6.2 पर वापस जाना पड़ा। लेकिन यह इस कमांड की जरूरत थी।
ज़ेन


0

ऐसा करने का एक और तरीका स्लिमगैम स्थापित करना है gem install slimgems:। यह रूबीजीम्स का एक ड्रॉप-इन कांटा है जो पुराने संस्करणों के साथ बेहतर काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.