আপনি ইতিমধ্যে রেক 0.9.0 সক্রিয় করেছেন, তবে আপনার গেমফিলের জন্য রেক 0.8.7 প্রয়োজন


124

আমি রেল প্রকল্প চালানোর চেষ্টা করছি, পেয়েছি

Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

যদি আমি করি: "বান্ডিল ইনস্টল"

কিন্তু আমি পাচ্ছি

You have already activated rake 0.9.0, but your Gemfile requires rake 0.8.7

করছেন যখন

rake db:migrate

উত্তর:


245

প্রথমে আপনার জেমফাইলে রেকের উল্লেখ রয়েছে কিনা তা পরীক্ষা করে দেখুন। যদি তা না হয় তবে এটি যুক্ত করুন এবং "আপনি ইতিমধ্যে সক্রিয় করেছেন" সংস্করণটি নির্দিষ্ট করুন।

তারপরে, আপনার অ্যাপ্লিকেশনের জন্য এটি ব্যবহার করছে রেক সংস্করণটি আপডেট করতে আপনাকে বান্ডেলটি বলতে হবে:

bundle update rake

এটি আপনার Gemfile.lockজন্য আপনার আপডেট করা হবে ।


2
এটি আমার পক্ষে কাজ করে না। যখন আমি এই কমান্ডটি চালনা করি এটি 'বান্ডিল ইনস্টল' হিসাবে ঠিক একই জিনিসটি করে এবং এটি দেখায় যে এটি একই রেক সংস্করণটি ব্যবহার করছে। এটি আপডেট করে না।
EE33

5
আমাকে আমার রত্নখণ্ডিতে রত্ন 'রাক', 'সংস্করণ #' যুক্ত করতে হয়েছিল এবং আমার জেমফিলের জন্য 'বান্ডিল আপডেট রেক' চালাতে হয়েছিল lock লকটি সঠিকভাবে আপডেট হতে পারে। তাদের জন্য কাজ করার জন্য এই সমাধানটি পেতে পারে না এমন কারও জন্য এফওয়াইআই।
EE33

44

যেখানে আপনি বর্তমানে রেক কমান্ড ব্যবহার করছেন

rake db:migrate

পরিবর্তে এটি ব্যবহার করুন:

bundle exec rake db:migrate

রেল এবং / অথবা রেকের সর্বশেষতম সংস্করণটি একসাথে ভালভাবে কাজ না করা পর্যন্ত এটি হবে।


3
"রেল এবং / বা রেকের সর্বশেষ সংস্করণ" সম্পর্কে একসাথে ভালভাবে কাজ করার বিটটির কেবলমাত্র একটি নির্দিষ্ট, নামবিহীন, সময় পয়েন্ট এবং ব্যবহারের কাজের প্রবাহ সম্পর্কে কিছু নির্দিষ্ট অনুমানের অধীনে অর্থ রয়েছে। আমার মনে হয় এই নিদর্শনটি "আপনি রক্তপাতের প্রান্তের রেল ব্যবহার করছেন, এবং র‌্যাকটি এখনও ধরেনি।" তবে সেই ক্ষেত্রে "বান্ডেল এক্সিকিউটি" বা "এডিট জেমফিল" পদ্ধতির মাধ্যমেও সমাধান করা যেতে পারে, এবং কোনও অভ্যন্তরীণ সামঞ্জস্যের সমস্যা না থাকলে এই সমস্যাগুলি সমাধান করে তবে কেবল একটি জঞ্জাল ওয়ার্কফ্লো ইতিহাস।
জ্যাকার

24

আমি ডব্রি ডেনকে ধন্যবাদ জানাই, বন্ধুরা তবে আমাকে আরও কিছু করতে হয়েছিল। এখানে সমাধান (আমার জন্য কাজ করে)। আমি যোগ ছিল

gem 'rake','0.8.7'

জেমফাইলে, যা সেখানে ছিল না, তবে আমার রেলের নতুন সংস্করণটি স্বয়ংক্রিয়ভাবে রেক ইনস্টল করে (0.9.0)।

আমি rake0.9.0 মুছে ফেলার gem uninstall rake পরে এবং করার পরে bundle update rake, আমি ডেটাবেস তৈরি এবং স্থানান্তর করতে পারি।



7

আপনার জেমফাইলে আপনি যে সংস্করণটি চান তা উল্লেখ করুন।

gem 'rake', '0.9.0' 

তারপর

bundle update rake

আপনার রেক টাস্কটি চালানোর জন্য আপনাকে বান্ডেল এক্সিকিউটি ব্যবহার করতে হবে

bundle exec rake db:migrate

পরবর্তী সংস্করণটিকে "অ-অ্যাক্টিভেট" না করার কথা মনে হচ্ছে। সম্পূর্ণভাবে রাকে সরানো এবং পুনরায় ইনস্টল করার কাজগুলি, যদিও।
জোসেফকে

6

ওহ, দেখুন এটি ভবিষ্যত। আমার জন্য, এটি অভিযোগ করেছিল যে আমি যখন 0.9.5 চেয়েছিলাম তখন আমি 10.x ইনস্টল করেছিলাম। পুরোপুরি নিশ্চিত নন, সাম্প্রতিক সংস্করণ সংখ্যার কী হয়েছিল তা খতিয়ে দেখার জন্য রুবির সাথে এতটা পরিচিত ছিলেন না, তবে আমি যা করেছি তা হ'ল:

gem uninstall rake
gem install rake -v 0.9.5

অ্যাপটিকে যে রেক সংস্করণটি ইনস্টল করতে হয়েছে তা সিস্টেমকে জোর করে ইনস্টল করার জন্য (আমার কাছে এটি অক্টোপ্রেস ছিল)।


2
ভবিষ্যত কল করেছে এবং এটি আপনার হাতুড়ি প্যান্ট ধার নিতে চায়।
কিথ লেইন

হাই, এটি আবার ভবিষ্যত। শুনেছি হামার প্যান্ট শেষ পর্যন্ত ফিরে আসছে।
সাব

5

আমার এই সমস্যাটি ছিল (অন্য রত্নের সাথে যা রেক ছিল না) এবং আমি এটি সমাধান করতে সক্ষম হয়েছি

gem uninstall <complaining gem>
gem install <complaining gem>

bundle install
bundle update

নোট করুন যে 'sudo' কীওয়ার্ড ব্যবহৃত হয়নি (যেমন sudo বান্ডেল ইনস্টল) কারণ এটি আপনার রত্নটিকে এমন ডিরেক্টরিতে স্থাপন করতে পারে যেখানে আপনার রেল অ্যাপ্লিকেশন সন্ধান করছে না।


3

আপনি যদি জিজ্ঞাসা করছেন না তা যদি আমি বুঝতে পারি তবে আপনার Gemfileফাইলটি খোলার এবং লাইনটি পরিবর্তন করা দরকার ...

gem 'rake', '0.8.7'

...প্রতি...

gem 'rake', '0.9.0'

আমি যদি 0.9 এর পরিবর্তে 0.8.7 ব্যবহার করতে চাই?
কির

6
রেক রত্নটি আপনার গেমফাইলে ডিফল্টরূপে নির্দিষ্ট করা হয় না কারণ এটি একটি রেল নির্ভরতা। আপনি যদি রেক মণিটি 0.9.0 এ আপডেট করেন তবে আপনার সিস্টেমে এখনও 0.8.7 রত্ন রয়েছে (পরীক্ষা করে দেখুন gem list)। আমি নিশ্চিত যে যদি gem 'rake', '0.8.7'এখনও আপনার নির্দিষ্ট করা হয়Gemfile.lock কোনও সমস্যা ছাড়াই 0.8.7 রত্ন ব্যবহার করবে। যদি তা না হয় তবে আপনার জেমফাইলে bundleযোগ gem 'rake', '~> 0.8.7'করার পরে দৌড়ানোর চেষ্টা করুন (না। লক করুন) এবং দেখুন এটি কিছু বলছে কিনা।
ডানেউ

আমি @ ডব্রি ডেনের সাথে একমত
অলিভিয়ার এল।

রত্ন 'রেক' সংজ্ঞায়িত করা হয় না। আমার একাধিক রত্ন রাক (0.8.7 এবং 0.9.0) থাকলে এটি ডিফল্ট লাগে one আমরা কি পুরানো ডিফল্ট করতে পারি?
মুজাহ মাসকে

3

এটি আপনার জেমফাইলে যুক্ত করুন

# Rake 0.9.0 break Rails.
gem "rake", "!= 0.9.0"

এবং তারপরে রেক-০.৯.০ আনইনস্টল করুন

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