बंडल: मणि बंडल (> = 0.a) निष्पादन योग्य बंडल के साथ नहीं मिल सकता है (मणि :: GemNotFoundException) मणि के साथ बंडल स्थापित करने के दौरान


84

मैं निम्नलिखित स्क्रिप्ट निष्पादित कर रहा हूं:

gem install rdoc --no-document
gem install bundle
bundle

उत्पादन:

+ gem install rdoc --no-document
Successfully installed rdoc-6.1.1
1 gem installed
+ gem install bundle
Successfully installed bundle-0.0.1
Parsing documentation for bundle-0.0.1
Done installing documentation for bundle after 2 seconds
1 gem installed
1 gem installed
+ bundle install
/usr/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
    from /usr/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
    from /srv/myuser/.gem/ruby/2.5.0/bin/bundle:23:in `<main>'

मैंने /srv/myuser/.gem/ruby/2.5.0/binअपने रास्ते में जोड़ा है इसलिए मैं रत्न स्थापित करने में सक्षम था।

gem envशो

RubyGems Environment:
  - RUBYGEMS VERSION: 2.7.7
  - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/2.5.0
  - USER INSTALLATION DIRECTORY: /srv/myuser/.gem/ruby/2.5.0
  - RUBY EXECUTABLE: /usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - SPEC CACHE DIRECTORY: /srv/myuser/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/2.5.0
     - /srv/myuser/.gem/ruby/2.5.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--user-install"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/bin

gem listस्थापित रत्न दिखाता है। जब मैं प्रदर्शन करता हूं तो मुझे बंडल भी मिल सकता है:

ls -ltrah /srv/myuser/.gem/ruby/2.5.0/bin

मैंने बंडल बनाने की भी कोशिश की है, लेकिन इससे भी मदद नहीं मिली। मैं क्या गलत कर रहा हूं?

gem which bundleकुछ भी नहीं दिखा रहा है gem spec bundleयह दिखा रहा है।

अद्यतन: मैंने बंडल चलाने से पहले बंडल को स्थापित करने की कोशिश की, लेकिन एक ही समस्या प्रकट होती है:

gem list bundle दिखाता है

bundle (0.0.1)
bundler (2.0.1)

जवाबों:


141

Bundler version 2 ने Gemfile.lockआपके प्रोजेक्ट में निर्दिष्ट Bundler के संस्करण का उपयोग करने के लिए स्वचालित रूप से एक नई सुविधा शुरू की । इस प्रकार, यदि आपके पास Gemfile.lockनीचे की तरह एक रेखा के साथ एक मौजूदा है

BUNDLED WITH
   1.17.3

Bundler एक Bundler संस्करण <2.0 के साथ चलने का प्रयास करेगा। चूँकि आपके पास सिर्फ Bundler 2.0.1 (और Rubygems> = 2.7.0) स्थापित है, यह इसके बजाय त्रुटिहीन त्रुटि संदेश के साथ विफल हो जाता है।

इसे ठीक करने के लिए, आप कर सकते हैं

  • अपने से लाइनों को हटा दें Gemfile.lockऔर अब से हर जगह 2.x का उपयोग करें, या
  • gem install bundler -v '< 2.0'आपके द्वारा निर्दिष्ट के रूप में उपयुक्त संस्करण का उपयोग करने के साथ एक बंडल 1.x संस्करण स्थापित करें Gemfile.lock

इसके बारे में अधिक जानकारी बुंडलर ब्लॉग पर देखी जा सकती है ।


4
IMO यह सही उत्तर होना चाहिए। संभावित सुधारों की इस सूची में जोड़ने के लिए एक और विकल्प Gemfile.lockफिर से बंडल इंस्टॉल को हटाना और चलाना है
Americo Savinon

इस जवाब के लिए धन्यवाद, मुझे बहुत कोशिश कर बचाया।
ऑरलैंडो

यदि कोई rubygemsनए संस्करण में अपडेट करता है - तो उसे समस्या को भी हल करना चाहिए। gem update --systemनवीनतम संस्करण में अपग्रेड करने के लिए (या कम से कम gem update --system '2.7.10' to stay on 2.7.x version of RubyGems।)
एलेक्सिज कुबेरव

बुंडलर ब्लॉग बुंदलर के सटीक संस्करण को स्थापित करने के लिए एक-लाइन कमांड प्रदान करता है जिसे रूबीजीम्स ढूंढ रहा है: shell gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)" आप अधिक जानकारी के लिए उनके लेख को पढ़ सकते हैं ।
टॉम न्गुयेन

88

नीचे बताए गए आदेश को चलाने से पहले पोस्ट में वर्णित विवरण के अनुसार:

bundle install

स्क्रिप्ट में, आपको नीचे कमांड चलाने की आवश्यकता है:

gem install bundler

तो, काम करने के लिए आदेशों का क्रम होगा:

gem install bundler
bundle install

अगर काम नहीं करता है तो बंडलर कमांड को अपडेट करें:

 gem install bundler -v '1.17.3'

बंडल 2.0 में कार्यात्मकताओं के टूटने का कारण नीचे दिए गए लिंक में दिया गया है:

https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html


4
कोशिश की लेकिन अभी भी वही मुद्दा है।
डेनकोबॉय

1
यही चाल चली वाह !! आप अपना उत्तर अपडेट कर सकते हैं और मैं इसे स्वीकार करूंगा। शायद आप कुछ और जानकारी प्रदान कर सकते हैं?
डेनकोबॉय

1
जवाब अपडेट किया !!
रोहन

महान जवाब, यह उम्मीद नहीं की थी कि संस्करण को फिर से खोलना उतना ही सरल होगा लेकिन यह जानना अच्छा है।
newdark-it

1
यदि आपने सिर्फ बुंडलर 1.x से 2.x में अपग्रेड किया है, तो होल्डर जस्ट से संबंधित BUNDLED से उत्तर देखें। अपने बंडल को डाउनग्रेड करने की आवश्यकता नहीं है। लाइनों को हटाने या अपने वर्तमान संस्करण को अपडेट करने का समाधान होता है।
विलियम लाटी

40

मैं भी नहीं कर सका bundle -v। इसने इसे हल किया:

gem update --system

यहां से जानकारी प्राप्त करें (इसी तरह की समस्या): find_spec_for_exe ': रत्न बंडलर (> = 0.a) (रत्न :: GemNotFoundException) नहीं मिल सकता है

शायद माणिक + मणि + बंडलर के बीच कुछ संस्करण बेमेल हैं


इसने मेरे लिए इस मुद्दे को हल किया और
जोश


4

मुझे हाल ही में यही समस्या थी। मेरे मामले में मैंने Gemfile.lock में लॉग किए गए से अलग बंडलर पर एक संस्करण स्थापित किया है। कृपया जांचें


3

मैंने इसी मुद्दे का सामना किया। यह समस्या इस तथ्य के कारण है कि रूबीजीम सिस्टम पर बंडलर रत्न के लिए एक निष्पादन योग्य बंडल नहीं पा सकता है

इसे ठीक करने के लिए, पहले दौड़ें

gem install bundler

यदि आपके पास स्थानीय रूप से स्थापित बंडलर रत्न नहीं है, तो चलाएं

gem update --system

बस इतना ही

आशा है कि ये आपकी मदद करेगा


मैंने इसे उत्तर के साथ हल किया, जो इस साइट पर भी है: bundler.io/blog/2019/05/14/…
डिएगो जीपी


1

मुझे आज उसी त्रुटि का सामना करना पड़ा। बंडलर संस्करण जो मैंने पहले अपने सिस्टम में स्थापित किया था: 1.16.6

बुंडलर 2 में अपग्रेड कैसे करें और नीचे दिए गए दो चरणों में आधिकारिक बंडलर डॉक्स में दिए गए निर्देशों का पालन ​​किया:

  1. gem install bundler (बंडलर का नवीनतम संस्करण प्राप्त करने में आपकी सहायता करता है जो आज 2.0.2 है)
  2. bundle update --bundler

1

मैंने मैक ओएस को कैटालिना में अपग्रेड करने के बाद ट्रैविस बंडल के लिए एक समान त्रुटि संदेश देखा।

Traceback (most recent call last):
    2: from /usr/local/bin/travis:22:in `<main>'
    1: from /usr/local/Cellar/ruby/2.6.5/lib/ruby/2.6.0/rubygems.rb:263:in `bin_path'
/usr/local/Cellar/ruby/2.6.5/lib/ruby/2.6.0/rubygems.rb:284:in `find_spec_for_exe': can't find gem travis (>= 0.a) with executable travis (Gem::GemNotFoundException)

समस्या को हल करने के लिए, मैंने स्रोत से ट्रैविस को फिर से इंस्टॉल किया।

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