2012-04-20 15 views
9

मेरे पास एक साधारण रेल एप्लिकेशन है जिसे मैं हेरोकू में तैनात करना चाहता हूं। जब मैं नीचे कमांड चलाता हूंमुझे क्यों मिल रहा है किसी भी स्रोत में multi_json-1.3.1 नहीं मिला?

git push heroku master 

नीचे त्रुटि संदेश प्रदर्शित होता है।

Could not find multi_json-1.3.1 in any of the sources 
! 
! Failed to install gems via Bundler. 
! 
! Heroku push rejected, failed to compile Ruby/rails app 

यहाँ मेरी Gemfile

gem 'rails', '3.2.3' 
gem 'pg' 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'therubyracer', :platform => :ruby 
    gem 'uglifier', '>= 1.0.3' 
end 
gem 'jquery-rails' 

उत्तर

25

हटाएँ Gemfile.lock फ़ाइल है, और रन बंडल स्थापित करें। यह मेरे लिए काम करता है!

+0

आप सही हैं।अभी मैं इसे हल कर चुका हूं :) –

+0

सरल और काम कर रहा है;) – ghostrifle

+0

इसके अलावा, बंडल इंस्टॉल के बाद इसे धक्का देने से पहले Gemfile.lock में परिवर्तन जोड़ने और प्रतिबद्ध करने के लिए मत भूलना। यह स्पष्ट प्रतीत होता है लेकिन मैं इसे करने के लिए भूल गया और निश्चित रूप से, धक्का देने पर त्रुटि समान थी;) – Hezad

-1

मैंने इसे निम्नलिखित चरणों से हल किया है।

Removed Gemfile.lock 
bundle install 

समस्या के कारण शुरू में है मेरी Gemfile.lock multi_json-1.3.1 है

अब यह संस्करण multi_json-1.3.2

0

मेरे मामले में, मैं

अभाव था है
source 'https://rubygems.org' 

Gemfile में। मेरा संदेह यह है कि बंडलर के पुराने संस्करण किसी स्रोत के बिना काम कर सकते हैं, लेकिन नए संस्करण नहीं हो सकते हैं।

1

मैंने विभिन्न रत्नों के लिए इन त्रुटियों की एक श्रृंखला देखी, इस तथ्य के बावजूद कि मुझे पता था कि ये रत्न उपलब्ध थे (उदाहरण के लिए gem list -r <gem> ने उन्हें संस्करण समेत दिखाया; ब्राउज़िंग rubygems.org ने दिखाया कि मुझे आवश्यक संस्करण दिखाया गया था और नहीं किया गया था yanked आदि) और मेरे पास एक स्रोत सेट था (मैं भी सुनिश्चित करने के लिए 6 अलग-अलग स्रोत सेट)।

यह पता चला मेरी समस्या मैं विकसित पर नवीनतम खींचने के लिए एक सुविधा शाखा रवाना होने से पहले git stashed था और बाद में गुप्त कोष में पॉप, जो एक समस्या थी भूल क्योंकि मैं अपने .rvmrc और परिवर्तन के लिए प्रतिबद्ध नहीं (उपयोग करने के लिए बदल गया था था हमारे उत्पादन की तुलना में एक नया रूबी)।

क्योंकि मेरी .rvmrc परियोजना के लिए एक gemset निर्दिष्ट, stashing यह मतलब मैं अचानक एक gemset कि मेरे Gemfile.lock में और कारणों मुझे समझ नहीं आता Bundler मान लिया गया है, तो मणि में है के लिए जवाहरात की एक पूरी गुच्छा याद आ रही थी के खिलाफ bundling था Gemfile.lock यह पहले से ही स्थापित है और यह इसे दूरस्थ रूप से नहीं देखता है।

तो अगर किसी और को इस अविश्वसनीय रूप से निराशाजनक कोने के मामले का सामना करना पड़ता है तो मैंने सोचा कि मैं इसे यहां लिखूंगा।

1

यदि आप अपनी तैनाती करने के लिए कैपिस्ट्रानो का उपयोग कर रहे हैं और आप रहस्यमय तरीके से "किसी भी स्रोत में multi_json-1.7.2 नहीं ढूंढ पाए", तो सुनिश्चित करें कि आपके config/deploy.rb के शीर्ष पर require "bundler/capistrano" है।

0

मेरे लिए ऐसा इसलिए हुआ क्योंकि Pow (स्थानीय रैक सर्वर) सही RVM रूबी संस्करण/रत्न का उपयोग नहीं कर रहा था।

निम्नलिखित .powrc जोड़कर फिक्स्ड:

# based on https://coderwall.com/p/pkj39a 
if [ -f "$rvm_path/scripts/rvm" ] && [ -f ".ruby-version" ] && [ -f ".ruby-gemset" ]; then 
    source "$rvm_path/scripts/rvm" 
    rvm use `cat .ruby-version`@`cat .ruby-gemset` 
fi 

स्रोत: https://coderwall.com/p/pkj39a

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