Ruby on Rails (RoR) ইনস্টল করা এবং সেটআপ করা বেশ সহজ, তবে এটি নির্ভর করে আপনার অপারেটিং সিস্টেমের ওপর। নিচে আমরা Linux, macOS, এবং Windows-এ RoR সেটআপ করার ধাপগুলো ব্যাখ্যা করেছি।
প্রাথমিক প্রস্তুতি
RoR সেটআপের আগে কিছু প্রয়োজনীয় টুল ইনস্টল করতে হবে:
- Ruby: RoR ফ্রেমওয়ার্কের জন্য প্রাথমিক প্রোগ্রামিং ভাষা।
- Rails: Ruby ফ্রেমওয়ার্ক।
- SQLite3 বা MySQL/PostgreSQL: ডেটাবেস ব্যবস্থাপনার জন্য।
- Node.js এবং Yarn: JavaScript রানটাইম এবং প্যাকেজ ম্যানেজার।
- Git: সোর্স কোড ম্যানেজমেন্টের জন্য।
Linux-এ Ruby on Rails ইনস্টলেশন
ধাপ ১: Ruby ইনস্টলেশন
Ruby Version Manager (RVM) ব্যবহার করুন:
sudo apt update sudo apt install curl gpg -y curl -sSL https://get.rvm.io | bash -s stable source ~/.rvm/scripts/rvm rvm install rubyইনস্টল করা হয়েছে কিনা নিশ্চিত করতে:
ruby -v
ধাপ ২: Node.js এবং Yarn ইনস্টল করুন
sudo apt install nodejs npm -y
sudo npm install --global yarn
ধাপ ৩: Rails ইনস্টল করুন
gem install rails
rails -v
ধাপ ৪: ডেটাবেস সেটআপ
SQLite3 ইনস্টল করতে:
sudo apt install sqlite3 libsqlite3-dev -y
macOS-এ Ruby on Rails ইনস্টলেশন
ধাপ ১: Ruby ইনস্টলেশন
Homebrew ব্যবহার করে Ruby ইনস্টল করুন:
brew install ruby
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
ruby -v
ধাপ ২: Node.js এবং Yarn ইনস্টল করুন
brew install node
brew install yarn
ধাপ ৩: Rails ইনস্টল করুন
gem install rails
rails -v
ধাপ ৪: SQLite3 ইনস্টল করুন
brew install sqlite3
Windows-এ Ruby on Rails ইনস্টলেশন
ধাপ ১: RubyInstaller ব্যবহার করে Ruby ইনস্টল করুন
- RubyInstaller ডাউনলোড করুন।
- Ruby এবং Devkit ইনস্টল করুন।
ইনস্টলেশন শেষে টার্মিনালে যাচাই করুন:
ruby -v
ধাপ ২: Node.js এবং Yarn ইনস্টল করুন
- Node.js ইনস্টল করুন।
Yarn ইনস্টল করুন:
npm install --global yarn
ধাপ ৩: Rails ইনস্টল করুন
gem install rails
rails -v
ধাপ ৪: SQLite3 ইনস্টল করুন
- SQLite3 ডাউনলোড করুন।
- এটি PATH-এ যোগ করুন।
একটি নতুন Rails অ্যাপ তৈরি করুন
Rails ইনস্টলেশন সম্পন্ন হওয়ার পর একটি নতুন প্রজেক্ট তৈরি করুন:
rails new my_app
cd my_app
rails server
এরপর, আপনার ব্রাউজারে http://localhost:3000 লিংকটি খুলুন।
সাধারণ সমস্যা এবং সমাধান
গেম ইনস্টল সমস্যাঃ
যদিgem install railsকাজ না করে, তাহলেsudoব্যবহার করুন:sudo gem install railsSQLite3 লাইব্রেরি পাওয়া যাচ্ছে না:
লাইব্রেরি ইনস্টল নিশ্চিত করুন:sudo apt install libsqlite3-devYarn না পাওয়া গেলে:
Yarn পুনরায় ইনস্টল করুন:npm install --global yarn
Ruby on Rails ইনস্টলেশন সম্পন্ন হওয়ার পর আপনি সহজেই একটি পূর্ণাঙ্গ ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন। এটি ওয়েব ডেভেলপমেন্টকে দ্রুত এবং কার্যকর করে তোলে।
Ruby ইনস্টল করা ভিন্ন ভিন্ন অপারেটিং সিস্টেমে ভিন্ন পদ্ধতিতে সম্পন্ন হয়। নিচে Windows, macOS এবং Linux-এ Ruby ইনস্টল করার প্রক্রিয়া ব্যাখ্যা করা হয়েছে।
Windows-এ Ruby ইনস্টলেশন
Windows-এ Ruby ইনস্টল করার জন্য RubyInstaller সবচেয়ে সহজ পদ্ধতি।
ধাপ ১: RubyInstaller ডাউনলোড
- RubyInstaller ওয়েবসাইট থেকে সর্বশেষ সংস্করণ ডাউনলোড করুন।
ধাপ ২: Ruby ইনস্টল করুন
- ডাউনলোড করা
.exeফাইল চালু করুন। - Ruby এবং Devkit সিলেক্ট করুন।
- ইনস্টলেশনের সময় Add Ruby executables to your PATH অপশন সিলেক্ট করুন।
- ইনস্টলেশন সম্পন্ন হলে, Devkit সেটআপ সম্পন্ন করতে নির্দেশ অনুসরণ করুন।
ধাপ ৩: ইনস্টলেশন যাচাই
কমান্ড প্রম্পটে টাইপ করুন:
ruby -v
এটি Ruby এর সংস্করণ প্রদর্শন করবে।
macOS-এ Ruby ইনস্টলেশন
macOS-এ প্রাথমিকভাবে Ruby ইনস্টল থাকে। তবে আপডেট বা নতুন সংস্করণ ইনস্টল করার জন্য Homebrew ব্যবহার করা হয়।
ধাপ ১: Homebrew ইনস্টল করুন (যদি ইনস্টল করা না থাকে)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
ধাপ ২: Ruby ইনস্টল করুন
brew install ruby
ধাপ ৩: PATH আপডেট করুন
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
ধাপ ৪: ইনস্টলেশন যাচাই
ruby -v
আপনার Ruby সংস্করণ দেখাবে।
Linux-এ Ruby ইনস্টলেশন
Linux-এ Ruby ইনস্টল করার জন্য প্যাকেজ ম্যানেজার বা RVM (Ruby Version Manager) ব্যবহার করা যায়।
পদ্ধতি ১: প্যাকেজ ম্যানেজারের মাধ্যমে
Ubuntu/Debian:
sudo apt update
sudo apt install ruby-full
Fedora:
sudo dnf install ruby
পদ্ধতি ২: RVM ব্যবহার করে ইনস্টলেশন
RVM (Ruby Version Manager) ব্যবহার করলে একাধিক Ruby সংস্করণ সহজে ম্যানেজ করা যায়।
RVM ইনস্টল করুন
sudo apt update
sudo apt install curl gpg -y
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
Ruby ইনস্টল করুন
rvm install ruby
ইনস্টলেশন যাচাই
ruby -v
সাধারণ সমস্যা এবং সমাধান
PATH সমস্যা:
যদি Ruby কমান্ড পাওয়া না যায়, তাহলে PATH সঠিকভাবে যোগ করুন।export PATH="$PATH:/path/to/ruby/bin"- RVM Permission Issue (Linux):
যদি RVM চালাতে সমস্যা হয়, তাহলেsudoব্যবহার না করার চেষ্টা করুন এবং আপনার শেল রিফ্রেশ করুন। - Devkit সমস্যা (Windows):
Devkit ইনস্টলেশনের সময় সঠিক ইনস্ট্রাকশন অনুসরণ করুন।
উপরের ধাপগুলো অনুসরণ করে আপনি Windows, macOS, এবং Linux-এ সহজেই Ruby ইনস্টল করতে পারবেন। Ruby ইনস্টল হওয়ার পর আপনি Ruby ব্যবহার করে প্রোগ্রামিং এবং ওয়েব ডেভেলপমেন্ট শুরু করতে প্রস্তুত।
Rails ইন্সটল করা এবং প্রথম প্রজেক্ট তৈরি করা একটি সহজ এবং সরল প্রক্রিয়া। Ruby ইনস্টল করার পর Rails ফ্রেমওয়ার্ক সেটআপ করা সম্ভব। নিচে Windows, macOS এবং Linux-এ Rails ইন্সটল এবং প্রথম প্রজেক্ট তৈরির ধাপ দেওয়া হলো।
Rails ইন্সটলেশন
ধাপ ১: Ruby এবং Bundler ইনস্টলেশনের যাচাই
Rails ইন্সটল করার আগে নিশ্চিত করুন যে Ruby এবং Bundler সঠিকভাবে ইনস্টল হয়েছে।
Ruby ইনস্টল করা আছে কিনা যাচাই করতে:
ruby -v
Bundler ইনস্টল করতে (যদি আগে না থাকে):
gem install bundler
ধাপ ২: Rails ইনস্টল করুন
gem install rails
ধাপ ৩: Rails সংস্করণ যাচাই
Rails ইন্সটলেশনের পর সংস্করণ যাচাই করতে:
rails -v
প্রথম Rails প্রজেক্ট তৈরি করা
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Rails একটি প্রজেক্ট তৈরি করতে নিচের কমান্ড দিন:
rails new project_name
project_name এর জায়গায় আপনার প্রজেক্টের নাম দিন।
ধাপ ২: প্রজেক্ট ডিরেক্টরিতে প্রবেশ করুন
cd project_name
ধাপ ৩: সার্ভার চালু করুন
Rails সার্ভার চালু করতে:
rails server
এরপর আপনার ব্রাউজারে http://localhost:3000 এ গিয়ে অ্যাপ্লিকেশন দেখুন।
ডিরেক্টরির কাঠামো
Rails প্রজেক্ট তৈরি করলে নিচের মতো একটি ডিরেক্টরি কাঠামো তৈরি হয়:
- app/: এখানে মডেল, ভিউ এবং কন্ট্রোলার থাকে।
- config/: অ্যাপ্লিকেশনের কনফিগারেশন ফাইল।
- db/: ডেটাবেস সংক্রান্ত ফাইল।
- Gemfile: প্রজেক্টে ব্যবহৃত জেমের তালিকা।
একটি সিম্পল ফিচার যোগ করা
ধাপ ১: Controller তৈরি করুন
একটি নতুন কন্ট্রোলার তৈরি করতে:
rails generate controller Welcome index
ধাপ ২: রাউট যোগ করুন
config/routes.rb ফাইলে রাউট নির্ধারণ করুন:
Rails.application.routes.draw do
root 'welcome#index'
end
ধাপ ৩: ভিউ ফাইল এডিট করুন
app/views/welcome/index.html.erb ফাইলে নিচের কোড যুক্ত করুন:
<h1>Welcome to My First Rails App!</h1>
<p>This is my first Rails project.</p>
ধাপ ৪: সার্ভার চালু করে দেখুন
rails server
এরপর ব্রাউজারে http://localhost:3000 এ গিয়ে ফলাফল দেখুন।
সাধারণ সমস্যা এবং সমাধান
Rails ইন্সটলেশনে সমস্যা:
যদিgem install railsকাজ না করে, তাহলেsudoদিয়ে ইনস্টল করুন:sudo gem install railsNode.js না থাকলে:
Node.js ইনস্টল করুন:sudo apt install nodejsSQLite3 সমস্যা:
নিশ্চিত করুন যে SQLite3 ইনস্টল করা আছে:sudo apt install sqlite3 libsqlite3-dev
Rails ইন্সটল করার পর সহজেই নতুন প্রজেক্ট তৈরি এবং সেটআপ করা সম্ভব। এটি ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের একটি দ্রুত এবং কার্যকর প্ল্যাটফর্ম।
Rails একটি Model-View-Controller (MVC) ভিত্তিক ফ্রেমওয়ার্ক, যা প্রতিটি প্রজেক্টে একটি নির্দিষ্ট ডিরেক্টরি স্ট্রাকচার তৈরি করে। এই স্ট্রাকচার অ্যাপ্লিকেশনকে গঠনমূলক এবং মেইনটেনেবল রাখে। এখানে প্রতিটি মূল ফোল্ডারের ভূমিকা এবং কাজ তুলে ধরা হলো।
Rails ডিরেক্টরি স্ট্রাকচার
project_name/
├── app/
│ ├── assets/
│ ├── controllers/
│ ├── helpers/
│ ├── mailers/
│ ├── models/
│ ├── views/
│ └── channels/
├── bin/
├── config/
├── db/
├── lib/
├── log/
├── public/
├── storage/
├── test/ বা spec/
├── tmp/
└── vendor/
মূল ফোল্ডার এবং তাদের ভূমিকা
app/
Rails অ্যাপ্লিকেশনের মূল কোড এই ডিরেক্টরিতে থাকে। এটি MVC ভিত্তিক উপাদানগুলিকে আলাদা করে রাখে।
- controllers/:
ব্যবহারকারীর রিকোয়েস্ট প্রক্রিয়াকরণ এবং মডেল ও ভিউয়ের মধ্যে সমন্বয় করে।
উদাহরণ:app/controllers/application_controller.rb। - models/:
ডেটাবেস এবং ব্যবসায়িক লজিক সংক্রান্ত কার্যক্রম পরিচালনা করে।
উদাহরণ:app/models/user.rb। - views/:
অ্যাপ্লিকেশনের ইউজার ইন্টারফেস। এটি ব্যবহারকারীদের জন্য HTML পৃষ্ঠাগুলি তৈরি করে।
উদাহরণ:app/views/welcome/index.html.erb। - assets/:
CSS, JavaScript, এবং ইমেজসহ স্ট্যাটিক ফাইল সংরক্ষণ করে।
উদাহরণ:app/assets/stylesheets/application.css। - helpers/:
ভিউতে ব্যবহৃত পুনরাবৃত্ত কোডগুলো সংরক্ষণ করে।
উদাহরণ:app/helpers/application_helper.rb। - mailers/:
ইমেল সংক্রান্ত লজিক পরিচালনার জন্য ব্যবহৃত হয়।
উদাহরণ:app/mailers/user_mailer.rb। - channels/:
রিয়েল-টাইম ফিচারের জন্য ActionCable ব্যবহার করে।
উদাহরণ:app/channels/application_cable/connection.rb।
bin/
Rails সার্ভার এবং অন্যান্য স্ক্রিপ্ট চালানোর জন্য এক্সিকিউটেবল ফাইল সংরক্ষণ করে।
উদাহরণ: bin/rails।
config/
অ্যাপ্লিকেশনের কনফিগারেশন ফাইল এবং রাউটিং তথ্য এখানে থাকে।
- routes.rb:
অ্যাপ্লিকেশনের রাউটিং সংজ্ঞায়িত করে। - database.yml:
ডেটাবেস সংক্রান্ত কনফিগারেশন সংরক্ষণ করে। - environments/:
ডেভেলপমেন্ট, প্রোডাকশন, এবং টেস্টিং এনভায়রনমেন্টের সেটিংস।
db/
ডেটাবেস সংক্রান্ত ফাইল এবং মাইগ্রেশন স্ক্রিপ্ট সংরক্ষণ করে।
- schema.rb:
ডেটাবেসের বর্তমান স্ট্রাকচার সংরক্ষণ করে। - migrate/:
মাইগ্রেশন ফাইল সংরক্ষণ করে।
lib/
কাস্টম কোড এবং মডিউল সংরক্ষণ করার জন্য ব্যবহৃত হয়।
- lib/tasks/:
কাস্টম Rake টাস্ক সংরক্ষণ করে।
log/
অ্যাপ্লিকেশনের লগ ফাইল সংরক্ষণ করে।
উদাহরণ: log/development.log।
public/
স্ট্যাটিক ফাইল যেমন HTML এবং অ্যাসেট সংরক্ষণ করে, যা সরাসরি ব্রাউজার অ্যাক্সেস করতে পারে।
উদাহরণ: public/404.html।
storage/
Active Storage এর মাধ্যমে আপলোড করা ফাইল সংরক্ষণ করে।
test/ বা spec/
Rails এর টেস্টিং কাঠামো (Minitest বা RSpec) এর ফাইল সংরক্ষণ করে।
tmp/
অস্থায়ী ফাইল এবং ক্যাশ সংরক্ষণ করে।
vendor/
তৃতীয় পক্ষের জেম এবং প্যাকেজ সংরক্ষণ করে।
ডিরেক্টরি স্ট্রাকচারের সুবিধা
- অ্যাপ্লিকেশন সংগঠিত থাকে।
- ডেভেলপাররা সহজে কাজ ভাগ করতে পারে।
- ডিরেক্টরি ভিত্তিক কাঠামো মডিউলার কোডিং নিশ্চিত করে।
Rails এর এই ডিরেক্টরি স্ট্রাকচার অ্যাপ্লিকেশন ডেভেলপমেন্টকে দ্রুত এবং কার্যকর করে তোলে।
RubyGems এবং Bundler হল Ruby প্রোগ্রামিং ভাষার দুটি অত্যন্ত গুরুত্বপূর্ণ টুল, যা Ruby লাইব্রেরি এবং প্যাকেজ ম্যানেজমেন্টকে সহজ এবং দক্ষ করে তোলে। নিচে RubyGems এবং Bundler-এর ভূমিকা এবং ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করা হলো।
RubyGems কী?
RubyGems হল Ruby ভাষার জন্য প্যাকেজ ম্যানেজার, যা Ruby লাইব্রেরি বা প্যাকেজ (যেমন, জেম) ইনস্টল, আপডেট, এবং ম্যানেজ করতে ব্যবহৃত হয়। প্রতিটি Ruby লাইব্রেরি বা প্যাকেজকে gem বলা হয়। RubyGems প্যাকেজগুলিকে সেন্ট্রাল রিপোজিটরিতে সংরক্ষণ করে এবং ডেভেলপাররা সেগুলি ইন্সটল করতে পারে।
RubyGems-এর প্রধান ফিচার:
- গেম ইন্সটল করা: আপনি প্রয়োজনীয় Ruby লাইব্রেরি ইনস্টল করতে পারবেন।
- গেম আপডেট করা: আপনার ইনস্টল করা গেমগুলির আপডেট পেতে পারবেন।
- গেম ম্যানেজমেন্ট: আপনার প্রজেক্টে ব্যবহৃত লাইব্রেরিগুলিকে ট্র্যাক করতে পারবেন।
RubyGems ব্যবহার করার উদাহরণ
গেম ইনস্টল করা:
gem install railsউপরের কমান্ডটি
railsgem ইনস্টল করবে।গেম সংস্করণ দেখতে:
gem listএটি ইনস্টল করা সব গেমের তালিকা প্রদর্শন করবে।
গেম আপডেট করা:
gem update railsএটি
railsগেমটি আপডেট করবে।গেম আনইনস্টল করা:
gem uninstall rails
Bundler কী?
Bundler একটি টুল যা আপনার Ruby প্রজেক্টে প্রয়োজনীয় জেমগুলি নির্ধারণ এবং পরিচালনা করতে সাহায্য করে। এটি Gemfile নামক ফাইলে আপনার প্রজেক্টের জন্য প্রয়োজনীয় সব জেমের তালিকা রাখে এবং bundle install কমান্ডের মাধ্যমে তা ইনস্টল করে।
Bundler এর প্রধান সুবিধা:
- প্রজেক্ট নির্ভরতা ম্যানেজমেন্ট: Bundler আপনার প্রজেক্টে ব্যবহৃত সব গেম এবং তাদের নির্ভরতা একত্রিত করে।
- সুনির্দিষ্ট জেম সংস্করণ: এটি নির্দিষ্ট সংস্করণ অনুসারে জেম ইনস্টল করতে পারে, ফলে আপনার প্রজেক্টের মধ্যে সংস্করণ সমস্যা এড়ানো যায়।
- প্রোডাকশন এবং ডেভেলপমেন্ট পরিবেশে আলাদা নির্ভরতা: আপনি আলাদা আলাদা পরিবেশের জন্য নির্ভরশীলতা সেট করতে পারবেন (যেমন, ডেভেলপমেন্ট এবং প্রোডাকশন)।
Bundler ব্যবহার করার উদাহরণ
Gemfile তৈরি করা:
প্রজেক্টের মূল ডিরেক্টরিতে একটিGemfileতৈরি করুন এবং প্রয়োজনীয় জেমগুলো উল্লেখ করুন। উদাহরণ:source 'https://rubygems.org' gem 'rails', '~> 6.1.0' gem 'pg', '~> 1.2' gem 'devise', '~> 4.7'জেম ইনস্টল করা:
Gemfileএ তালিকাভুক্ত সব গেম ইনস্টল করতে:bundle install- Gemfile.lock তৈরি করা:
bundle installচলানোর পর একটিGemfile.lockফাইল তৈরি হবে, যা নির্দিষ্ট সংস্করণের জেমগুলোর নির্ভরতা ধারণ করবে। এর মাধ্যমে সুনির্দিষ্ট সংস্করণের জেম ইনস্টল নিশ্চিত হয়। - Bundler দিয়ে নতুন জেম ইনস্টল করা: আপনার
Gemfileএ নতুন গেম যুক্ত করার পর,bundle installচালিয়ে নতুন গেমটি ইনস্টল করতে পারবেন। Bundler দিয়ে নির্দিষ্ট জেম সংস্করণ ইনস্টল করা:
bundle update railsএটি
railsগেমটির সর্বশেষ সংস্করণ আপডেট করবে।
RubyGems এবং Bundler এর পার্থক্য
| বৈশিষ্ট্য | RubyGems | Bundler |
|---|---|---|
| মূল উদ্দেশ্য | Ruby গেম ইনস্টল এবং ম্যানেজ করা | প্রজেক্ট নির্ভরশীলতা এবং জেম ম্যানেজমেন্ট |
| কাজের পরিধি | গেম ইনস্টল, আপডেট, আনইনস্টল করা | Gemfile অনুসারে জেম ইনস্টল এবং আপডেট করা |
| গেম সংস্করণ নির্দিষ্ট করা | নির্দিষ্ট সংস্করণ ইনস্টল করা যায় না | Gemfile-এ সংস্করণ নির্দিষ্ট করা যায় |
| Gemfile ব্যবহৃত হয় | না | হ্যাঁ, Gemfile ব্যবহার করা হয় |
RubyGems এবং Bundler এর ব্যবহার কেন প্রয়োজন?
- প্রজেক্ট নির্ভরতা ম্যানেজমেন্ট:
Bundler আপনার প্রজেক্টের জন্য নির্দিষ্ট সংস্করণের জেম ম্যানেজ করে এবং আপনি যেখানেই কাজ করুন, নির্দিষ্ট গেমের সংস্করণ ব্যবহার নিশ্চিত করে। - সহজ ইনস্টলেশন:
RubyGems আপনাকে সহজে গেম ইনস্টল করতে সাহায্য করে, তবে Bundler প্রজেক্ট নির্ভরতা এবং তাদের সংস্করণ পরিচালনা করতে অনেক কার্যকরী। - সহযোগিতা উন্নত করা:
Bundler এবংGemfile.lockব্যবহার করে একাধিক ডেভেলপার একই নির্ভরশীলতা ব্যবহার করতে পারে, যা কোডের সামঞ্জস্যতা এবং সঠিক সংস্করণ নিশ্চিত করে।
সারমর্ম
RubyGems এবং Bundler Ruby প্রোগ্রামিং ভাষার জন্য দুটি গুরুত্বপূর্ণ টুল, যা লাইব্রেরি এবং প্যাকেজ ম্যানেজমেন্টকে সহজ এবং কার্যকর করে তোলে। RubyGems সরাসরি গেম ইনস্টল ও ম্যানেজ করতে সাহায্য করে, আর Bundler প্রজেক্ট নির্ভরতা এবং নির্দিষ্ট সংস্করণে গেম ম্যানেজ করতে সহায়ক।
Read more