আমি একটি রেল অ্যাপ্লিকেশন অনুসন্ধান করছি - প্রোড সার্ভারে একটি নির্দিষ্ট রত্নের দুটি সংস্করণ ইনস্টল করা আছে, আমি কীভাবে বলতে পারি যে প্রোড অ্যাপটি কোন সংস্করণটি ব্যবহার করছে?
আমি একটি রেল অ্যাপ্লিকেশন অনুসন্ধান করছি - প্রোড সার্ভারে একটি নির্দিষ্ট রত্নের দুটি সংস্করণ ইনস্টল করা আছে, আমি কীভাবে বলতে পারি যে প্রোড অ্যাপটি কোন সংস্করণটি ব্যবহার করছে?
উত্তর:
রেল 3 এবং 4 রেলগুলিতে ব্যবহার করুন bundle show
রেলস ২-এ, rake gemsকোন রত্ন, নির্ভরতা এবং সংস্করণগুলি ইনস্টল করা, হিমায়িত করা ইত্যাদি মুদ্রণ করবে
bundle show | grep gem_nameকম্পাসের জন্য উদাহরণ করুন:bundle show | grep compass
আপনি যদি বান্ডলার ব্যবহার করেন তবে আপনি সংস্করণটি পেতে পারেন
bundle show [gemname]
bundle info [gemname]পরিবর্তে ব্যবহার করুন।
এই তথ্যটি খুঁজে পেতে এবং সাজানোর জন্য আমার প্রত্যাশার চেয়ে বেশি সময় লেগেছিল তাই আমি অন্যদের দেখার জন্য এটি এখানে এক জায়গায় পোস্ট করতে চেয়েছিলাম। আমিও ব্যান্ড 3 এর জন্য এটি কিছুটা স্পষ্ট করে বলতে চেয়েছিলাম:
স্ক্রিপ্ট / সম্পর্কে প্রতিস্থাপন করা হয়েছে rake about বিশদ এখানে । আপনি যদি আগ্রহী হন তবে রেল 3 এর জন্য সমস্ত কমান্ড লাইনের পরিবর্তনের একটি তালিকা সেগুলি এখানে পাওয়া যাবে ।
rake gems ails. রেলগুলিতে কাজ করে না Instead পরিবর্তে আপনার ব্যবহার করা উচিত bundle show
উদাহরণস্বরূপ, আপনি আপনার রত্নগুলির সমস্ত সংস্করণগুলি ফাইলের সাথে দেখার জন্য এটি সংরক্ষণ করতে পারেন:
gem list > all_gems.txt
এবং আপনি দেখতে পাচ্ছেন যে আপনার রেল অ্যাপগুলি কী সংস্করণগুলির সাথে ব্যবহার করছে:
bundle show > project_gems.txt
ভিমের মতো সম্পাদক ব্যবহার করে আপনি পরিবর্তনগুলি দেখতে সহজেই ভিমডিফ ব্যবহার করতে পারেন
এটি খুঁজে পাওয়ার সম্ভবত আরও একটি সরাসরি উপায় আছে তবে আপনি যদি কনসোলটি লোড করেন এবং এর মতো নির্দিষ্ট সংস্করণ প্রয়োজন হয় তবে:
gem 'RedCloth', '3.0.4'
এটি আপনাকে জানাবে যে ইতিমধ্যে কী সংস্করণ সক্রিয় রয়েছে:
=> Gem::LoadError: can't activate RedCloth (= 3.0.4, runtime) for [], already activated RedCloth-4.2.2
Gemfile.lockআপনার অ্যাপের মূল ডিরেক্টরিতে অবস্থিত একটি তালিকা রয়েছে ।
এই কারণে আমি Gemfile.lockআমার থেকে দূরে থাকি .gitignore। এটি যখন আমি রত্ন সংস্করণটি নির্দিষ্ট করতে ভুলে গিয়েছিলাম তখন এটি আমাকে একাধিকবার সাশ্রয় করেছে GemFileএবং একটি রত্ন ব্রেকিং পরিবর্তনের সাথে আপডেট হয়েছে।
ব্যবহার করার চেষ্টা করুন script/about। আপনার config/environment.rbএটি সম্পর্কে তথ্য আছে।
আপনার মধ্যে config/environment.rbআপনি কোনও নির্দিষ্ট gemঅ্যাপ্লিকেশনটির কোন সংস্করণ ব্যবহার করা উচিত তা নির্দিষ্ট করতে পারেন। তবে gemআপনার মেশিনে যদি কোনও একাধিক সংস্করণ ইনস্টল থাকে এবং আপনি সংস্করণটি নির্দিষ্ট না করেন তবে সেই রত্নটির সর্বশেষতম সংস্করণ অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হবে।
gem list <gemname>
এটি সমস্ত মিলে যাওয়া রত্নগুলি প্রদর্শন করবে উদাহরণস্বরূপ যদি কেউ কিছু করে
gem list rack
তারপরে নিম্নলিখিত আউটপুট নিম্নলিখিত হবে
*** LOCAL GEMS ***
rack (1.6.4)
rack-mount (0.6.14)
rack-test (0.6.3, 0.6.2, 0.5.7)
script/aboutআপনি কীসের মূল রেল এবং রাক রত্নগুলি ব্যবহার করছেন সেগুলির কোনও সংস্করণ আপনাকে বলবে, তবে অন্য কিছু নয়। আদর্শভাবে, আপনি যদি সন্ধান করেন config/environment.rbতবে এমন একটি বিভাগ থাকা উচিত যা এটির মতো দেখাচ্ছে:
# Specify gems that this application depends on and have them installed with rake gems:install
# config.gem "bj"
# config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net"
# config.gem "sqlite3-ruby", :lib => "sqlite3"
# config.gem "aws-s3", :lib => "aws/s3"
কোনও ভাগ্যের সাথেই, অ্যাপটির লেখক সেখানে প্রয়োজনীয় কোনও রত্ন এবং সংস্করণ অন্তর্ভুক্ত করবেন। যাইহোক, সংস্করণগুলি এই ফাইলে alচ্ছিক, এবং শেষ পর্যন্ত কোনও অনভিজ্ঞ বিকাশকারীকে require 'rubygems'; require 'some_random_thing'কোনও প্রদত্ত ফাইলের শীর্ষে কেবল থাপ্পড় দেওয়া থেকে থামায় না ।
যদি আপনি দেখতে পান যে কোনও রত্নের প্রয়োজন রয়েছে তবে কোনও সংস্করণ নির্দিষ্ট করা হয়নি, আপনি gem listসিস্টেমে সমস্ত রত্নের সমস্ত সংস্করণ দেখতে টাইপ করতে পারেন। ডিফল্টরূপে এটি উপলব্ধ সর্বশেষতমটি ব্যবহার করবে।
bundle exec gem which gem_name
সম্ভবত আপনি যা ব্যবহার করতে পারেন:
$› bundle exec gem which rails
/Users/xxxx/.rvm/gems/ruby-2.1.2@gemset/gems/railties-4.1.7/lib/rails.rb
gem which gem_name
আপনার মত লেখার জন্য বান্ডেল শো রত্নের নাম আই
bundle show devise
এবং এটি বর্তমান রত্ন সংস্করণটি মুদ্রণ করবে।
স্থানীয় রত্নের জন্য এটি ব্যবহার করে দেখুন:
gem list gemname | grep -P '(^|\s)\Kgemname(?=\s|$)'
আপনি যদি বান্ডেল ব্যবহার করেন:
bundle exec gem list gemname | grep -P '(^|\s)\Kgemname(?=\s|$)'
আপনি যদি বান্ডলার ব্যবহার করেন তবে আপনি ব্যবহার করে সংস্করণটি পেতে পারেন:
bundle info [gemname]