Find_spec_for_exe ': মণি বান্ডিলার (> = 0.a) খুঁজে পাচ্ছেন না (রত্ন :: জহরনটফাউন্ড এক্সেক্সেশন)


218

আমি ব্যবহার করেছি sudo bundle installএবং এটি সমস্যার কারণ হতে পারে?

এখন আমার আছে:

  • gem -v 2.6.14
  • ruby -v রুবি ২.৩.৫.২767676 (2017-09-14 রিভিশন 59905) [x86_64-ডারউইন 15]
  • jekyll -v জেকিল ৩.6.২
  • bundle -vবান্ডিলার সংস্করণ 1.16.0.pre.3

আমি চালানোর চেষ্টা করার সময় bundle exec jekyll serveবা কেবলমাত্র নিম্নলিখিত ত্রুটিটি পাচ্ছিjekyll serve

/Users/myusername/.rvm/rubies/ruby-2.3.5/lib/ruby/site_ruby/2.3.0/rubygems.rb:271:in `find_spec_for_exe': can't find gem bundler (>= 0.a) (Gem::GemNotFoundException)
    from /Users/myusername/.rvm/rubies/ruby-2.3.5/lib/ruby/site_ruby/2.3.0/rubygems.rb:299:in `activate_bin_path'
    from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/bundle:23:in `<main>'
    from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/ruby_executable_hooks:15:in `eval'
    from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/ruby_executable_hooks:15:in `<MacBooMacBook-MacBook-MacBook-Pro-MacBook-PrMacBook-MacBooMacBMaMacBMaMaMaMaMaMaMaMaMacBMaMaMaMacBMa

এছাড়াও, আমার যে ব্লগে আমার ব্লগ রয়েছে সেই ফোল্ডারে অ্যাক্সেস করার সময় আমি cd my_pathনিম্নলিখিত বার্তাটি পাই:

রুবি বাছাইয়ের জন্য ভিএম আপনার জেমফিল ব্যবহার করেছেন, এটি সব ঠিক আছে - হেরোকু এটিও করে, আপনি 'rvm rvmrc সতর্কতা উপেক্ষা / লাইব্রেরি / ওয়েব সার্ভার / নথি / ব্লগ / জেমফাইলে' দিয়ে এই সতর্কতাগুলি উপেক্ষা করতে পারেন। সমস্ত ফাইলের জন্য সতর্কতা উপেক্ষা করার জন্য 'rvm rvmrc সতর্কতা অল গেমফিলগুলি উপেক্ষা করুন' চালিত হয়। অজানা রুবি ইন্টারপ্রিটার সংস্করণ (কীভাবে পরিচালনা করতে হয় তা জানেন না): RUBY_VERSION।

এটি কীভাবে সমাধান করা যায় তা আমার কোনও ধারণা নেই। আমি কেবল আমার স্থিতিশীল ব্লগ তৈরি করতে চাই এবং সত্যই আমার রুবি, রত্ন বা বান্ডিল সম্পর্কে কোনও ধারণা নেই :) তাই আমি কিছু অন্তর্দৃষ্টি প্রশংসা করব!


এটি কি এই সহায়তা করতে পারে: github.com/rvm/rvm/issues/1860
সাইজানফার

@ সাইজানফার এর জন্য ধন্যবাদ! আমি চেষ্টা করেছিলাম, এখন প্রক্রিয়াটিতে একটি নতুন ত্রুটি পেয়েছে: stackoverflow.com/questions/47035080/…
আলভারো

উত্তর:


364

আমার ক্ষেত্রে সমস্যাটি হ'ল Gemfile.lockফাইলটির একটি BUNDLED_WITHসংস্করণ 1.16.1এবং gem install bundlerইনস্টল সংস্করণ ছিল 2.0.1, সুতরাং ফোল্ডারটি ডানদিকে দেখার সময় একটি সংস্করণ মেলেনি

gem install bundler -v 1.16.1 ঠিক কর

অবশ্যই, আপনি আপনার পরিবর্তন করতে পারেন Gemfile.lockএর BUNDLED_WITHগত সঙ্গে bundlerসংস্করণ এবং সাম্প্রতিক সফটওয়্যার ব্যবহার, যেমন Sam3000 প্রস্তাব দেওয়া


15
বিকল্প হিসাবে, আপনি BUNDLED_WITHসংস্করণটি বান্ডলারের সর্বশেষ সংস্করণে পরিবর্তন করতে চাইতে পারেন । এটি আমার পক্ষে কাজ করেছে এবং আমাকে পুরানো সফটওয়্যারটিরও দরকার রক্ষা করেছে :)
আন

5
বান্ডলার 2 সবেমাত্র মুক্তি পেয়েছে, সুতরাং আপনি যদি আপনার ডকফাইলে উপরে উল্লিখিতভাবে উল্লেখ না করে থাকেন তবে আপনি এই ত্রুটিটি bundler.io/blog/2019/01/03/
ন্যানউসিং-

হাই @ অ্যান্টোনিও-টাপিয়েডোর আমি এই সমস্যাটি নিয়ে আসছি, তবে আমি উইন্ডোতে রয়েছি (লিনাক্সে পরিবর্তন করতে পারি না)। আমি চালিয়েছি gem install bundler -v 1.16.1এবং এখন যদি gem.bat list bundlerআমি চালাই তবে আমি বান্ডিল পেয়েছি (২.০.১, ১.১16.১, ১.৯..6) আমি নাকিসুরে কথা বর্তমান সংস্করণ পরিবর্তন করুন: নির্বাহ bundle.bat _1.16.1 installআমাকে এই ত্রুটি দেয়: Could not find command "_1.16.1"। আপনার কি কোনও ধারণা আছে, তাই আমাকে নতুন প্রশ্ন তৈরি করতে হবে না? ধন্যবাদ!
জার্মান

কিছু মনে করবেন না, আমি সংস্করণটির শেষে একটি আন্ডারস্কোর মিস করছি।
জার্মান

ধন্যবাদ। এটি রুবি v2.5.1p57 ব্যবহার করে আমার একই সমস্যার সমাধান করতে পারে
বিদি 83

132
gem update --system

রুবিজেম আপডেট করবে এবং সমস্যার সমাধান করবে।


3
কেবল পরিষ্কার করার জন্য - @ নোরজ হিসাবে উল্লেখ করা হয়েছে - সমস্যাটি বান্ডিলারের নতুন সংস্করণে প্রবর্তিত হয়েছিল। আপনি যদি লিঙ্কটি অনুসরণ করেন তবে সমাধানটি হ'ল রুবিগেমস আপডেট করা।
রেজিবিবি

1
gem update --systemআমার জন্য কাজ করেছেন: ruby 2.5.0 , bundler 2.0.1 , macOS 10.13.6
জগদীপ সিং

74

হালনাগাদ:

@ নরজের উত্তর এবং @ নিলস ক্রিস্টিয়ানের মন্তব্য অনুসারে, নিম্নলিখিত আদেশটি কাজটি করা উচিত।

gem update --system
bundle install

কেউ আমার মতো ইস্যুতে লিপ্ত হলে আমি এটি লিখেছিলাম।

gem install bundler দেখায় যে Everythings ভাল ইনস্টল করা হয়।

Fetching: bundler-1.16.0.gem (100%)
Successfully installed bundler-1.16.0
Parsing documentation for bundler-1.16.0
Installing ri documentation for bundler-1.16.0
Done installing documentation for bundler after 7 seconds
1 gem installed

আমি টাইপ bundleকরার সময় একটি ত্রুটি হয়েছিল:

/Users/nikkov/.rvm/gems/ruby-2.4.0/bin/bundle:23:in `load': cannot load such file -- /Users/nikkov/.rvm/rubies/ruby-2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.16.0/exe/bundle (LoadError)
    from /Users/nikkov/.rvm/gems/ruby-2.4.0/bin/bundle:23:in `<main>'
    from /Users/nikkov/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `eval'
    from /Users/nikkov/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `<main>'

এবং ফোল্ডারে /Users/nikkov/.rvm/rubies/ruby-2.4.0/lib/ruby/gems/2.4.0/gems/কোনও ফোল্ডার ছিল না bundler-1.16.0

আমি এটি সঙ্গে স্থিরsudo gem install bundler


6
আপনি এটি "সংশোধন" করার পরে, আপনি .rvm এবং .gem- তে মানব ডিরেক্টরিটি ঠিক করেছেন তা নিশ্চিত করুন
মানবতা

1
@ অমানবতা আরও বিশদ ব্যাখ্যা করুন, দয়া করে আমার উত্তর সম্পাদনা করুন
নিক কোভ

1
আপনার উত্তরের জন্য অমানবিক chrs - আপনি কি .rvm এবং .gem এ আপনার ডিরেক্টরি অনুমতিগুলি স্থির করে নিজের অর্থটি ব্যাখ্যা করতে সক্ষম হবেন?
বিকেএসপুরগাঁও

1
@ নিক কোভ .rvm এবং .gem ফোল্ডারগুলির অবস্থান সম্ভবত আপনার বাড়ির ফোল্ডারের ভিতরে রয়েছে। Chmod কমান্ডের মাধ্যমে তাদের অনুমতিগুলি পরিবর্তন করার চেষ্টা করুন। এটা আমার জন্য কাজ করেছে।
সৌরভাইরাস

4
সুডো রত্ন ইনস্টল করা খারাপ অভ্যাস, সাধারণ ক্ষেত্রে সমস্ত মণি ইনস্টল করা সুডো ছাড়া কাজ করা উচিত
iamdi

33

রুবিগেমস ভি ৩.০.০ প্রয়োজন বান্ডিলারের কারণে যদি আপনি বান্ডিলার ২.০.১ বা ২.০.০ ইনস্টল করার চেষ্টা করেন তবে আসল উত্তরটি এখানে রয়েছে

গতকাল আমি বান্ডিলার ২.০ প্রকাশ করেছি যা বেশ কয়েকটি ব্রেকিং পরিবর্তন প্রবর্তন করেছে। এই পরিবর্তনগুলির মধ্যে একটি হ'ল রুবিগেমস ভি ৩.০.০ প্রয়োজন বান্ডিলার সেট করে। রিলিজ করার পরে, এটি স্পষ্ট হয়ে গেছে যে আমাদের প্রচুর ব্যবহারকারী রুবিগেমসের সত্যিকারের নতুন সংস্করণ প্রয়োজন বান্ডলার 2 নিয়ে ইস্যুতে চলেছে।

আমরা ব্যবহারকারীর কাছ থেকে প্রতিক্রিয়াটি গভীরভাবে শুনছি এবং রুবিগেমস প্রয়োজনীয়তা কমপক্ষে v2.5.0 এ শিথিল করার সিদ্ধান্ত নিয়েছি। আমরা একটি নতুন বান্ডিলার সংস্করণ, v2.0.1 প্রকাশ করেছি, যা এই প্রয়োজনীয়তাটি সামঞ্জস্য করে।

আরও তথ্যের জন্য, দেখুন: https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html


1
ধন্যবাদ, আপনার লিঙ্কটি সমস্যাটি গুগল করা থেকে কিছুটা সময় রক্ষা করেছিল
ইলিয়া কোনিখভ

ক্যাপিস্ট্রানো একটি নতুন মেশিনে ব্যর্থ হয়েছিল তবে পুরানো নয়। এটি আমার জন্য সমস্যাটি স্থির করেছে।
সিডউইটি

1
এটি ওপি-র প্রশ্নের "আসল উত্তর" হতে পারে না কারণ 2017 সালে বান্ডিলার 2.0 উপস্থিত ছিল না, যদিও লোকেরা অবশ্যই এই পৃষ্ঠাটি খুঁজে পাবেন কারণ লক্ষণগুলি একই।
ফিলিপ বাসবি

আমি বান্ডলার 2.0.0.1 এর সাথে সমস্যাটি অনুভব করছি
ফ্যাব্রিজিও বার্তোগলিও


31

এটি এটি স্থির করে:

  1. জেমফিল.লক সরান rm Gemfile.lock
  2. bundle installআবার দৌড়াও

সম্পাদনা: উত্পাদনে এটি করবেন না!

উত্পাদনের জন্য এই উত্তরে যান: https://stackoverflow.com/posts/54083113/revisions


আমি ভিজ্যুয়াল স্টুডিও কোডটি ব্যবহার করছি এবং আজুর ডিভাইসগুলির মাধ্যমে আপলোড এবং প্রকাশ করছি, যেখানে এটি বিল্ডে ব্যর্থ হয়েছিল, বিল্ডটি রত্ন ইনস্টল পদক্ষেপে ব্যর্থ হয়েছিল তবে এখন এটি কার্যকর হয়।
ডেভিড জোনস

4
একটি বিদ্যমান উত্পাদন প্রকল্পের জন্য এটি একটি ভয়ানক ধারণা। আপনি অচিহ্নিত (আপনার সিস্টেমের সাথে) নতুন কোডের একটি গুচ্ছ ইনস্টল করবেন।
ইন্টেন্টস

হ্যাঁ, এটি একটি খারাপ ধারণা এবং এটি একটি সমাধান হিসাবে বিবেচনা করা উচিত নয়। এটি প্রমাণ করে যে অন্য উত্তর (মিল নেই এমন একটি বান্ডিলারের সংস্করণ থাকা সম্পর্কে) সঠিক। বান্ডলারের সঠিক সংস্করণ ইনস্টল করা এটি ঠিক করা উচিত।
রবিন ডউগার্টি

ধন্যবাদ @ রবিনডৌহার্টি, আমি উত্তরটি সম্পাদনা করেছি যাতে সবাই উত্পাদনে এটি না করার সতর্ক করে দেয়।
ক্লোনেট

এটি উন্নয়নের ক্ষেত্রেও করা উচিত নয়। লক ফাইলের একটি ভাল কারণ আছে, এটি কোনও বিদ্যমান প্রকল্পে মুছে ফেলা উচিত নয়। আপনার মেশিনে বান্ডলারের সঠিক সংস্করণ ইনস্টল করা সমস্যার সমাধান করে, মুছে ফেলা Gemfile.lockএকটি শেষ উপায় হিসাবে বিবেচনা করা উচিত কারণ এটি অন্যান্য সমস্যার কারণ হতে পারে to
রবিন ডৌহার্টি

19

কারণটি হ'ল আপনার বর্তমান রুবি পরিবেশ, আপনি সংস্করণটির সাথে একটি আলাদা সংস্করণ পেয়ে গেছেন Gemfile.lock

  • নিরাপদ উপায়ে, একই সংস্করণ সহ বান্ডলারটি ইনস্টল করুন Gemfile.lock, কিছু অসাধারণ ঘটনা ঘটলে এটি কিছুই ভাঙবে না।
  • শক্ত উপায়, সরিয়ে ফেলুন Gemfile.lockএবং চালান bundle install

2
তার জন্য ধন্যবাদ. অবশ্যই প্রত্যেকেরই নিরাপদ সংস্করণটি ব্যবহার করা উচিত নতুন সন্ধান না করা রত্নগুলির সাথে পরিবেশের গোলমাল করা । নির্দিষ্ট সংস্করণ সহ বান্ডলার ইনস্টল করতে যেমন 1.17ব্যবহার করুনgem install bundler -v 1.17
anka

12

আপনি যে রুবি সংস্করণটি ব্যবহার করছেন তা যদি পরিবর্তন করে থাকেন rvm useতবে জেমফিল.লকটি সরিয়ে আবার চেষ্টা করুন।


4

জেমফাইল.লক খুলুন যা আপনার অ্যাপ ফোল্ডারের মূলের মধ্যে খুঁজে পাওয়া যাবে। ফাইলের শেষে স্ক্রোল করুন এবং ব্যবহৃত বান্ডেলর সংস্করণ দেখুন। তারপরে আপনি নিশ্চিত হয়ে নিন যে আপনি ব্যবহৃত বান্ডলার সংস্করণটি ইনস্টল করেছেন:

gem install bundler -v x.xx.xx

বা - আপনার যদি উচ্চতর বান্ডলার সংস্করণ ইনস্টল থাকে তবে জেমফিল.লক এবং বান্ডিলটি মুছুন।

পছন্দটি আপনার, আমার বন্ধু।


3
আমি জেমফিল.লক মোছার প্রস্তাব দিচ্ছি না কারণ এটি সমস্ত রত্নও আপডেট করে। এর ফলে বিশাল সমস্যা দেখা দিতে পারে।
স্যান্ড্রো এল

@ স্যান্ড্রোএল - আপনার বক্তব্যের সাথে সম্পূর্ণ একমত যাইহোক, এটি ঝুঁকি গ্রহণকারী এবং নাটকের প্রতি আকৃষ্ট তাদের জন্য একটি বিকল্প।
জর্জি কেফারব্যাক

ধন্যবাদ. আমার Gemfile.lockফোল্ডারে থাকা সংস্করণটি ইনস্টল করে চালাকিটি করলেন!
কোডএডভেঞ্জার

2

আপনার Gemfile.lockব্যবহারের সাথে মেলে এমন বান্ডলার ইনস্টল করতে:

gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"

1

আমার ক্ষেত্রে উপরের পরামর্শগুলি আমার পক্ষে কার্যকর হয়নি। আমার কিছুটা ভিন্ন দৃশ্য ছিল।

যখন আমি bundlerব্যবহার করে ইনস্টল করার চেষ্টা করেছি gem install bundler.. তবে আমি পেয়ে যাচ্ছিলাম

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.

তারপরে আমি চেষ্টা sudo gem install bundlerকরছিলাম তখন পেয়ে যাচ্ছিলাম

ERROR:  While executing gem ... (Gem::FilePermissionError)
  You don't have write permissions for the /usr/bin directory.

তারপরে আমি চেষ্টা করেছি sudo gem install bundler -n /usr/local/bin( /usr/binআমার ক্ষেত্রে কেবল ডিন্টের কাজ)।

এবং তারপর সফলভাবে ইনস্টল করা bundler

সম্পাদনা: আমি ম্যাকওএস ব্যবহার করি, /usr/binসে কারণে সম্ভবত আমার পক্ষে কাজ করবে না ( https://stackoverflow.com/a/34989655/3786657 মন্তব্য)


0

আমার আজ একই সমস্যা ছিল। আমি কোনো সরিয়ে এটির সমস্যা সমাধানের PATHমধ্যে .bashrcতদুর্দ্ধদের জন্য rvm


1
আপনি আমাকে বাঁচান আমি আমার বাশার্কে PATH = "AT पथ: OME হোম / .rvm / বিন" রফতানি করেছি, আমি এটি
সরিয়েছি

0

আমার সমস্যাটি ছিল আমি আরভিএম ব্যবহার করছি এবং ভুল রুবি সংস্করণটি সক্রিয় ছিল ...

আশা করি এটি কমপক্ষে একজনকে সহায়তা করবে


0

অনেক উত্তর যুক্ত করার সাথে সাথে, আমার সমস্যাটি ডকারের রুবিকে বেস হিসাবে ব্যবহার করতে চাইছে না, তবে তারপরে উপরে rbenv ব্যবহার করে problem এই স্ক্রু অনেক জিনিস আপ।

আমি এই ক্ষেত্রে এটি স্থির করেছি:

  • জেমফাইল.লক সংস্করণটি আপডেট করার প্রয়োজন ছিল - "বিটলিড উইথ বিট" সর্বশেষ সংস্করণে পরিবর্তন করার পরে এক পর্যায়ে ত্রুটি বার্তা পরিবর্তন হয়েছিল, তাই সম্ভবত প্রয়োজন হতে পারে
  • এনভায়রনমেন্ট ভেরিয়েবল আনসেট করে .bash_profile বা .bashrc এ:
unset GEM_HOME
unset BUNDLE_PATH

এর পরে, rbenv ভাল কাজ করেছেন। নিশ্চিত নয় যে en এনভি ভার্সগুলি প্রথম স্থানটিতে কীভাবে বোঝা হচ্ছে ...



আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.