RubyGems এবং Bundler রুবি প্রোগ্রামিং ভাষার দুটি গুরুত্বপূর্ণ টুল, যা ডেভেলপারদের লাইব্রেরি ব্যবস্থাপনা এবং প্রজেক্টে ডিপেনডেন্সি পরিচালনা করতে সহায়তা করে। এগুলি রুবির এক্সটেনশন এবং প্যাকেজ ব্যবস্থাপনা সিস্টেম হিসেবে কাজ করে, যাতে ডেভেলপাররা সহজে লাইব্রেরি ইনস্টল, আপডেট, এবং ম্যানেজ করতে পারেন।
১. RubyGems এর পরিচিতি
RubyGems হল রুবি প্রোগ্রামিং ভাষার জন্য প্যাকেজ ম্যানেজার, যা রুবি লাইব্রেরি এবং সফটওয়্যার প্যাকেজের ইনস্টলেশন, আপডেট, এবং ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। RubyGems একটি সেন্ট্রাল ডিপোজিটরি, যেখানে ডেভেলপাররা তাদের তৈরি করা রুবি লাইব্রেরি বা জেম (gem) আপলোড করতে পারেন, এবং অন্যরা সেগুলি ডাউনলোড ও ব্যবহার করতে পারেন।
RubyGems এর মূল ফিচার:
- জেম (Gem) ফাইল: একটি রুবি জেম (gem) হল একটি প্যাকেজ যা রুবি কোড এবং তার ডিপেনডেন্সির সমন্বয়ে তৈরি। এটি একটি ছোট ফাইল, যা রুবি লাইব্রেরি, অ্যাপ্লিকেশন বা টুলসকে অন্তর্ভুক্ত করতে পারে।
- গেমস ইনস্টলেশন:
gem installকমান্ড ব্যবহার করে রুবি লাইব্রেরি বা প্যাকেজ ইনস্টল করা হয়। - ডিপেনডেন্সি ম্যানেজমেন্ট: রুবি জেমস যেকোনো রুবি অ্যাপ্লিকেশন বা লাইব্রেরির ডিপেনডেন্সি (অন্য লাইব্রেরি বা প্যাকেজ) ম্যানেজ করতে সাহায্য করে।
- কমান্ড লাইনের টুল: RubyGems কমান্ড লাইনের টুল (যেমন
gem install,gem update,gem listইত্যাদি) প্রদান করে, যার মাধ্যমে জেম ইনস্টল, আপডেট বা অপসারণ করা যায়।
RubyGems এর ব্যবহার:
জেম ইনস্টলেশন:
gem install railsইনস্টল করা জেমের তালিকা দেখতে:
gem listজেম আপডেট করতে:
gem update railsজেম আনইনস্টল করতে:
gem uninstall rails
২. Bundler এর পরিচিতি
Bundler হল একটি রুবি ডিপেনডেন্সি ম্যানেজার যা রুবি প্রজেক্টে সমস্ত লাইব্রেরি এবং তাদের ডিপেনডেন্সি ঠিকভাবে ম্যানেজ করে। এটি RubyGems এর সাথে কাজ করে, তবে Bundler মূলত প্রজেক্ট-ভিত্তিক ডিপেনডেন্সি ম্যানেজমেন্টের জন্য তৈরি করা হয়েছে।
Bundler এর মূল ফিচার:
- Gemfile: Bundler একটি Gemfile ফাইলের মাধ্যমে প্রজেক্টের সমস্ত ডিপেনডেন্সি (লাইব্রেরি) ম্যানেজ করে। Gemfile এ আপনার প্রজেক্টের জন্য প্রয়োজনীয় সমস্ত জেমের নাম এবং সংস্করণ উল্লেখ থাকে।
- Gemfile.lock: এটি একটি লক ফাইল যা ডিপেনডেন্সির নির্দিষ্ট সংস্করণ সন্নিবেশিত রাখে, যাতে প্রজেক্টের অন্য সদস্যরা বা পরিবেশেও একই লাইব্রেরি সংস্করণ ব্যবহৃত হয়।
- ডিপেনডেন্সি ইনস্টলেশন:
bundle installকমান্ড ব্যবহার করে একসাথে সমস্ত লাইব্রেরি ইনস্টল করা যায়, যা Gemfile এবং Gemfile.lock এ উল্লেখিত থাকে। - ডিপেনডেন্সি আপডেট:
bundle updateকমান্ড ব্যবহার করে আপনি আপনার প্রজেক্টের ডিপেনডেন্সির সংস্করণ আপডেট করতে পারেন।
Bundler এর ব্যবহার:
Gemfile তৈরি করা:
আপনার প্রজেক্ট ডিরেক্টরির মধ্যে একটিGemfileতৈরি করুন এবং এতে আপনার প্রয়োজনীয় জেমগুলি উল্লেখ করুন।source 'https://rubygems.org' gem 'rails', '~> 6.0.3' gem 'pg', '~> 1.1' gem 'puma', '~> 4.1'ডিপেনডেন্সি ইনস্টলেশন:
একটি প্রজেক্টের জন্য সমস্ত লাইব্রেরি ইনস্টল করতে:bundle installডিপেনডেন্সি আপডেট করা:
সমস্ত লাইব্রেরি বা নির্দিষ্ট একটি লাইব্রেরি আপডেট করতে:bundle updateপ্রোজেক্ট রান করা:
bundle execকমান্ড ব্যবহার করে নির্দিষ্ট জেমের সাথে প্রোগ্রাম রান করুন:bundle exec rails server
RubyGems এবং Bundler এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | RubyGems | Bundler |
|---|---|---|
| ব্যবহার | রুবি প্যাকেজ বা লাইব্রেরি ইনস্টল এবং ম্যানেজ করার জন্য | প্রজেক্ট-ভিত্তিক ডিপেনডেন্সি ম্যানেজমেন্ট |
| কম্যান্ড | gem install, gem update, gem list | bundle install, bundle update, bundle exec |
| প্রয়োজনীয়তা | সাধারণ লাইব্রেরি ইনস্টলেশনের জন্য | একাধিক ডিপেনডেন্সি এবং তাদের নির্দিষ্ট সংস্করণ ম্যানেজ করতে |
| ফাইল | Gemfile নেই | Gemfile এবং Gemfile.lock ব্যবহার |
| লক্ষ্য | একক লাইব্রেরি বা জেম ইনস্টল করা | প্রজেক্টের জন্য সমস্ত ডিপেনডেন্সি ইনস্টল এবং লক করা |
সারসংক্ষেপ
RubyGems হল রুবি ভাষার প্যাকেজ ম্যানেজার যা লাইব্রেরি ইনস্টল এবং ম্যানেজ করতে সাহায্য করে, এবং Bundler রুবি প্রজেক্টে ডিপেনডেন্সি ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। RubyGems সাধারণত একক লাইব্রেরি ইনস্টল করতে ব্যবহৃত হয়, তবে Bundler প্রজেক্টে ডিপেনডেন্সির নির্দিষ্ট সংস্করণ ঠিকভাবে ইনস্টল এবং ম্যানেজ করার জন্য ব্যবহার হয়। RubyGems এবং Bundler একে অপরের সঙ্গে কাজ করে প্রজেক্ট ডেভেলপমেন্টের জন্য কার্যকরী ডিপেনডেন্সি ম্যানেজমেন্ট ব্যবস্থা সরবরাহ করে।
Read more