बंडलर - विभिन्न स्रोतों से निर्भरता को हल करना - रूबी, बंडलर, रत्न

मेरी कंपनी का एक निजी जेम-इन-द-बॉक्स सर्वर हैजहां कई टीमें आंतरिक रूप से निर्मित रत्नों को साझा कर सकती हैं। हाल ही में, इस सर्वर में एक रत्न जोड़ा गया है जिसका मैं उपयोग करना चाहता हूं। यह पता चला है, इस मणि में नेट-एसश और नेट-एसपीपी पर निर्भरता है, जो माणिक- gems.org से उपलब्ध हैं, और मणि-इन-द-बॉक्स सर्वर पर संग्रहीत नहीं हैं। जब मैं अपने बंडलर जेमफाइल में नया रत्न जोड़ता हूं और एक इंस्टाल चलाता हूं, तो मुझे निम्नलिखित त्रुटि मिलती है:

C:jruby-1.7.18binjruby.exe --1.9 C:jruby-1.7.18bin/bundle install

Fetching source index from http://my.server.org/geminabox/
Fetching gem metadata from http://rubygems.org/.
Fetching source index from http://my.server.org/geminabox/
Fetching gem metadata from http://rubygems.org/.
Fetching additional metadata from http://rubygems.org/........
Resolving dependencies...
Could not find gem "["net-ssh", "net-scp"] (>= 0) java", which is required by
gem "gem_dependent_on_ssh (>= 0) java", in any of the sources.

Process finished with exit code 6

यहाँ मेरे Gemfile से एक टुकड़ा है:

source "http://rubygems.org" do
gem "net-scp"
gem "net-sftp"
end

source "http://my.server.org/geminabox/" do
gem "gem_dependent_on_ssh"
end

ऐसा लग रहा है कि यह केवल मणि की तलाश में हैएक ही सर्वर पर निर्भरता मणि के रूप में लोड किया जा रहा है ... क्या ऐसा कुछ है जो मैं अपने जेमफाइल को इसके आसपास जोड़ सकता हूं? या, क्या मैं उस टीम में जा सकता हूं जिसने मणि बनाई है और क्या उन्हें यह बताने के लिए कुछ जोड़ना है कि निर्भरता की तलाश कहाँ है? या, केवल-ssh और net-scp रत्नों को Gem-in-a-box सर्वर से जोड़ने का एकमात्र समाधान है ताकि यह उन्हें स्थानीय निर्भरता के रूप में मिल सके?

अग्रिम में धन्यवाद!

उत्तर:

उत्तर № 1 के लिए 1

ऐसा लग रहा है दस्तावेज़ कहो ना (बहुत नीचे):

स्रोत प्राथमिकता

जब एक मणि को संतुष्ट करने के लिए एक रत्न का पता लगाने का प्रयास किया जाता है आवश्यकता, बंडलर निम्न प्राथमिकता क्रम का उपयोग करता है:

  1. स्रोत स्पष्ट रूप से मणि से जुड़ा हुआ है (उपयोग: स्रोत: पथ, या : Git)
  2. निहित रत्नों के लिए (स्पष्ट की निर्भरताएँ)रत्न), कोई भी स्रोत, पेरेंट पर घोषित git या पाथ रिपॉजिटरी। इसका परिणाम यह होगा बंडल गिट्टी से ActiveSupport मणि को प्राथमिकता देते हुए rubygems.org से लोगों पर रिपॉजिटरी
  3. के माध्यम से निर्दिष्ट स्रोत वैश्विक स्रोत लाइनें, पिछले से आपके जेफाइल में प्रत्येक स्रोत की खोज पहले जोड़ा गया।

संबंधित व्यक्ति यहां # 2 है। यह थोड़ा अस्पष्ट है, लेकिन मुझे लगता है कि डॉक्स का यह दूसरा भाग स्पष्ट करने में मदद करता है:

बुंडलर की बाल निर्भरता की खोज करेंगेयह रत्न पहली बार माता-पिता के लिए चुने गए स्रोत में देख रहा है, लेकिन यदि वे वहां नहीं पाए जाते हैं, तो यह SOURCE PRIORITY में वर्णित क्रम का उपयोग करके वैश्विक स्रोतों पर वापस आ जाएगा।

तो ऐसा लगता है कि आपको रूबीबैक स्रोत प्रदान करने की आवश्यकता है। यदि आप चाहते हैं कि यह मामला हो, तो इसका उपयोग करें source "http://rubygems.org" अपने दम पर लाइन के रूप में आप अपने जवाब में किया है। अन्यथा जब बाल रत्न (निर्भरता) की तलाश की जाती है, तो यह केवल माता-पिता के लिए प्रदान किए गए स्रोत पर दिखेगा।

उस ने कहा, मेरे पास एक कंपनी का जेम-इन-द-बॉक्स सर्वर है और आपके मुद्दे को पुन: पेश करने की कोशिश की है, लेकिन मैं सकारात्मक नहीं हूं, इसलिए मैं उन डॉक्स की सही व्याख्या नहीं कर रहा हूं।


जवाब के लिए 0 № 2

कुछ अन्य स्रोतों से परामर्श करने के बाद, ऐसा प्रतीत होता है कि यदि आप ब्लॉक हटाते हैं और केवल स्रोतों की घोषणा करते हैं, तो यह सभी रत्नों को स्थापित करने का प्रबंधन करता है:

source "http://rubygems.org"
source "http://my.server.org/geminabox/"

gem "net-scp"
gem "net-sftp"
gem "gem_dependent_on_ssh"

हालांकि यह इस विशिष्ट मुद्दे को ठीक करता है, मैं कर सकता हूंअभी भी एक ऐसे परिदृश्य की कल्पना करें जहां आप एक विशिष्ट रत्न के लिए स्रोत निर्दिष्ट करना चाहते हैं, और फिर भी इसका उपयोग किसी अन्य स्रोत में निर्भरता को हल करने के लिए करें। इसलिए जब हमारा मसला हल हो गया, तो सवाल अभी भी खड़ा है।


संबंधित सवाल
सबसे लोकप्रिय