প্যাকেজ ম্যানেজমেন্ট
প্যাকেজ ম্যানেজমেন্ট হল সিস্টেমে সফটওয়্যার প্যাকেজ ইনস্টল, আপডেট, ডাউনগ্রেড, মুছা এবং পরিচালনার একটি প্রক্রিয়া। এটি সিস্টেমের সফটওয়্যার কার্যকরভাবে এবং নিরাপদভাবে পরিচালনা করার জন্য একটি গুরুত্বপূর্ণ অংশ। লিনাক্স এবং ইউনিক্স সিস্টেমে প্যাকেজ ম্যানেজমেন্ট সাধারণত বিভিন্ন প্যাকেজ ম্যানেজার ব্যবহার করে করা হয়, যেমন APT, YUM, DNF, Zypper ইত্যাদি।
প্যাকেজ ম্যানেজার সফটওয়্যার প্যাকেজগুলি ডাউনলোড, ইনস্টল, কনফিগার এবং রিমুভ করার জন্য বিভিন্ন টুল সরবরাহ করে, যা সিস্টেমের জন্য প্রয়োজনীয় এবং স্বয়ংক্রিয়ভাবে ম্যানেজ করা হয়।
প্রধান প্যাকেজ ম্যানেজমেন্ট সিস্টেম
- APT (Advanced Package Tool) – Debian, Ubuntu এবং তাদের ডেরিভেটিভ সিস্টেমের জন্য ব্যবহৃত।
- YUM (Yellowdog Updater Modified) – Red Hat, CentOS, Fedora-এর জন্য ব্যবহৃত।
- DNF (Dandified YUM) – Fedora এবং RHEL সিস্টেমে ব্যবহৃত একটি আধুনিক প্যাকেজ ম্যানেজার।
- Zypper – openSUSE সিস্টেমের জন্য ব্যবহৃত।
1. APT (Advanced Package Tool)
APT প্যাকেজ ম্যানেজারটি Debian, Ubuntu এবং তাদের ডেরিভেটিভ সিস্টেমে ব্যবহৃত হয়। এটি প্যাকেজ ডাউনলোড, ইনস্টল এবং ম্যানেজ করার জন্য একটি শক্তিশালী টুল। APT এর মধ্যে বেশ কিছু কমান্ড আছে, যেমন apt-get, apt-cache, apt।
APT ব্যবহার:
প্যাকেজ ইনস্টল করা:
sudo apt install [প্যাকেজ নাম]প্যাকেজ আপডেট করা:
sudo apt update sudo apt upgradeপ্যাকেজ মুছে ফেলা:
sudo apt remove [প্যাকেজ নাম]অপ্রয়োজনীয় প্যাকেজ মুছে ফেলা:
sudo apt autoremoveপ্যাকেজের তথ্য দেখা:
apt show [প্যাকেজ নাম]প্যাকেজ সার্চ করা:
apt search [প্যাকেজ নাম]
2. YUM (Yellowdog Updater Modified)
YUM প্যাকেজ ম্যানেজারটি Red Hat, CentOS, এবং Fedora সিস্টেমে ব্যবহৃত হয়। এটি RPM প্যাকেজগুলির জন্য একটি ফ্রন্টএন্ড প্যাকেজ ম্যানেজার। YUM ব্যবহার করে প্যাকেজ ইনস্টল, মুছা, আপডেট এবং প্যাকেজ রেপোজিটরি ম্যানেজ করা যায়।
YUM ব্যবহার:
প্যাকেজ ইনস্টল করা:
sudo yum install [প্যাকেজ নাম]প্যাকেজ আপডেট করা:
sudo yum updateপ্যাকেজ মুছে ফেলা:
sudo yum remove [প্যাকেজ নাম]রেপোজিটরি আপডেট করা:
sudo yum repolistপ্যাকেজের তথ্য দেখা:
yum info [প্যাকেজ নাম]
3. DNF (Dandified YUM)
DNF হল YUM এর একটি আধুনিক সংস্করণ, যা Fedora, RHEL এবং CentOS 8+ সিস্টেমে ব্যবহৃত হয়। এটি অধিক দ্রুত এবং কার্যকরী।
DNF ব্যবহার:
প্যাকেজ ইনস্টল করা:
sudo dnf install [প্যাকেজ নাম]প্যাকেজ আপডেট করা:
sudo dnf updateপ্যাকেজ মুছে ফেলা:
sudo dnf remove [প্যাকেজ নাম]প্যাকেজের তথ্য দেখা:
dnf info [প্যাকেজ নাম]রেপোজিটরি আপডেট করা:
sudo dnf check-update
4. Zypper
Zypper হল openSUSE সিস্টেমের জন্য ব্যবহৃত প্যাকেজ ম্যানেজার। এটি RPM প্যাকেজ ম্যানেজমেন্ট সিস্টেমের উপরে কাজ করে এবং প্যাকেজ ইনস্টল, রিমুভ, আপডেট এবং সিস্টেম রেপোজিটরি ম্যানেজ করতে সাহায্য করে।
Zypper ব্যবহার:
প্যাকেজ ইনস্টল করা:
sudo zypper install [প্যাকেজ নাম]প্যাকেজ আপডেট করা:
sudo zypper updateপ্যাকেজ মুছে ফেলা:
sudo zypper remove [প্যাকেজ নাম]প্যাকেজের তথ্য দেখা:
zypper info [প্যাকেজ নাম]রেপোজিটরি আপডেট করা:
sudo zypper refresh
প্যাকেজ রেপোজিটরি
রেপোজিটরি হল একটি কেন্দ্রীয় স্থান যেখানে সফটওয়্যার প্যাকেজগুলির সংগ্রহ থাকে। এই প্যাকেজগুলি সাধারণত অফিসিয়াল অথবা তৃতীয় পক্ষের রেপোজিটরিতে সংরক্ষিত থাকে এবং আপনার প্যাকেজ ম্যানেজার সেই রেপোজিটরি থেকে সফটওয়্যার প্যাকেজ ডাউনলোড এবং ইনস্টল করে।
- APT-এ রেপোজিটরি ম্যানেজমেন্ট:
- রেপোজিটরি কনফিগারেশন ফাইল:
/etc/apt/sources.list - রেপোজিটরি আপডেট করতে:
sudo apt update
- রেপোজিটরি কনফিগারেশন ফাইল:
- YUM-এ রেপোজিটরি ম্যানেজমেন্ট:
- রেপোজিটরি কনফিগারেশন ফাইল:
/etc/yum.repos.d/ - রেপোজিটরি আপডেট করতে:
sudo yum repolist
- রেপোজিটরি কনফিগারেশন ফাইল:
- DNF-এ রেপোজিটরি ম্যানেজমেন্ট:
- রেপোজিটরি কনফিগারেশন ফাইল:
/etc/yum.repos.d/ - রেপোজিটরি আপডেট করতে:
sudo dnf check-update
- রেপোজিটরি কনফিগারেশন ফাইল:
- Zypper-এ রেপোজিটরি ম্যানেজমেন্ট:
- রেপোজিটরি কনফিগারেশন ফাইল:
/etc/zypp/repos.d/ - রেপোজিটরি আপডেট করতে:
sudo zypper refresh
- রেপোজিটরি কনফিগারেশন ফাইল:
সারসংক্ষেপ
প্যাকেজ ম্যানেজমেন্ট সিস্টেমের মাধ্যমে সফটওয়্যার প্যাকেজগুলির ইনস্টলেশন, আপডেট, রিমুভ এবং রেপোজিটরি ম্যানেজমেন্ট করা যায়। APT, YUM, DNF, এবং Zypper হল বিভিন্ন লিনাক্স সিস্টেমে ব্যবহৃত প্যাকেজ ম্যানেজার যা ব্যবহারকারীদের সফটওয়্যার ইনস্টলেশন ও সিস্টেম পরিচালনা সহজ করে তোলে। প্যাকেজ ম্যানেজারের মাধ্যমে, সিস্টেমটি সর্বদা আপডেট এবং নিরাপদ থাকে, যা ব্যবহারকারীদের কাজের গতি ও সিস্টেমের স্থিতিশীলতা বাড়ায়।
প্যাকেজ ম্যানেজমেন্ট সিস্টেম (PMS) পরিচিতি
প্যাকেজ ম্যানেজমেন্ট সিস্টেম (Package Management System) হল একটি সফটওয়্যার টুল বা সফটওয়্যার কিট যা লিনাক্স, ইউনিক্স, এবং অন্যান্য অপারেটিং সিস্টেমে সফটওয়্যার প্যাকেজ ইনস্টল, আপডেট, কনফিগার, ম্যানেজ এবং মুছে ফেলার প্রক্রিয়া সহজ করে। এটি সিস্টেমে বিভিন্ন সফটওয়্যার প্যাকেজের ডিপেন্ডেন্সি (dependency) পরিচালনা করে, অর্থাৎ একটি প্যাকেজের জন্য প্রয়োজনীয় অন্যান্য প্যাকেজগুলো স্বয়ংক্রিয়ভাবে ইনস্টল বা আপডেট করা হয়।
প্যাকেজ ম্যানেজমেন্ট সিস্টেমের মাধ্যমে ব্যবহারকারীরা নির্দিষ্ট কমান্ডের মাধ্যমে সফটওয়্যার প্যাকেজগুলি ইনস্টল, আপডেট এবং রিমুভ করতে পারেন, যা সাধারণত রিপোজিটরি থেকে পাওয়া যায়। এই পদ্ধতি সফটওয়্যার ইনস্টলেশনের প্রক্রিয়া সহজ, দ্রুত, এবং নিরাপদ করে তোলে।
প্যাকেজ ম্যানেজমেন্ট সিস্টেমের প্রধান উপাদানগুলি:
- প্যাকেজ:
- প্যাকেজ হল একটি সংকলিত সফটওয়্যার, যা সাধারণত এক বা একাধিক ফাইল, কনফিগারেশন, লাইব্রেরি এবং ডিপেন্ডেন্সি সহ থাকে। এটি সিস্টেমে নির্দিষ্ট কাজ সম্পাদন করতে সহায়ক।
- প্যাকেজ রিপোজিটরি:
- এটি একটি কেন্দ্রীয় স্টোরেজ যেখানে প্যাকেজ এবং তাদের ডিপেন্ডেন্সি সংরক্ষিত থাকে। সাধারণত ইন্টারনেট বা লোকাল সার্ভার থেকে প্যাকেজগুলো অ্যাক্সেস করা হয়। রিপোজিটরিগুলোর মাধ্যমে প্যাকেজগুলি ব্যবস্থাপনা করা যায়।
- প্যাকেজ ম্যানেজার:
- প্যাকেজ ম্যানেজার হল একটি টুল যা ব্যবহারকারীদের সফটওয়্যার প্যাকেজ ইনস্টল, আপডেট, মুছে ফেলতে এবং সিস্টেমের নির্ভরতা পরিচালনা করতে সাহায্য করে। এটি CLI (Command-Line Interface) বা GUI (Graphical User Interface) হতে পারে।
- ডিপেন্ডেন্সি ম্যানেজমেন্ট:
- একটি প্যাকেজে যেকোনো নির্ভরশীল প্যাকেজগুলিও ইনস্টল করা প্রয়োজন হতে পারে। প্যাকেজ ম্যানেজার স্বয়ংক্রিয়ভাবে এই ডিপেন্ডেন্সিগুলিকে শনাক্ত এবং ইনস্টল করে।
বিভিন্ন প্যাকেজ ম্যানেজমেন্ট সিস্টেম
লিনাক্স এবং ইউনিক্স সিস্টেমে বিভিন্ন প্যাকেজ ম্যানেজমেন্ট সিস্টেম রয়েছে। এখানে কিছু জনপ্রিয় প্যাকেজ ম্যানেজমেন্ট সিস্টেমের উদাহরণ দেওয়া হলো:
১. APT (Advanced Package Tool): ডেবিয়ান এবং উবুন্টু-ভিত্তিক সিস্টেমের জন্য
APT একটি প্যাকেজ ম্যানেজমেন্ট সিস্টেম যা ডেবিয়ান, উবুন্টু এবং অন্যান্য ডেবিয়ান-ভিত্তিক ডিস্ট্রিবিউশনগুলিতে ব্যবহৃত হয়। এটি ব্যবহারকারীদের কমান্ড-লাইনের মাধ্যমে প্যাকেজ ইনস্টল, আপডেট এবং মুছে ফেলার সুযোগ দেয়।
- কমান্ড উদাহরণ:
প্যাকেজ ইনস্টল করা:
sudo apt install package-nameপ্যাকেজ আপডেট করা:
sudo apt update sudo apt upgradeপ্যাকেজ মুছে ফেলা:
sudo apt remove package-name
২. YUM (Yellowdog Updater, Modified): রেডহ্যাট, সেন্টওএস এবং ফেডোরা-ভিত্তিক সিস্টেমের জন্য
YUM একটি প্যাকেজ ম্যানেজমেন্ট টুল যা রেডহ্যাট, সেন্টওএস এবং ফেডোরা-ভিত্তিক সিস্টেমগুলিতে ব্যবহৃত হয়। এটি RPM প্যাকেজ ফরম্যাটের সাথে কাজ করে এবং প্যাকেজ ইনস্টলেশন, আপডেট, এবং রিমুভাল পরিচালনা করে।
- কমান্ড উদাহরণ:
প্যাকেজ ইনস্টল করা:
sudo yum install package-nameপ্যাকেজ আপডেট করা:
sudo yum updateপ্যাকেজ মুছে ফেলা:
sudo yum remove package-name
৩. DNF (Dandified YUM): ফেডোরা-ভিত্তিক সিস্টেমের জন্য
DNF হল YUM-এর একটি উন্নত সংস্করণ, যা ফেডোরা 22 এবং তার পরবর্তী সংস্করণে ব্যবহৃত হয়। এটি YUM এর তুলনায় দ্রুত এবং উন্নত ডিপেন্ডেন্সি রেজোলিউশন প্রদান করে।
- কমান্ড উদাহরণ:
প্যাকেজ ইনস্টল করা:
sudo dnf install package-nameপ্যাকেজ আপডেট করা:
sudo dnf update
৪. Zypper: ওপেনসুশি এবং সুজি-ভিত্তিক সিস্টেমের জন্য
Zypper হল ওপেনসুশি এবং সুজি-ভিত্তিক সিস্টেমের জন্য একটি প্যাকেজ ম্যানেজমেন্ট টুল, যা RPM প্যাকেজ ফরম্যাট ব্যবহার করে।
- কমান্ড উদাহরণ:
প্যাকেজ ইনস্টল করা:
sudo zypper install package-nameপ্যাকেজ আপডেট করা:
sudo zypper update
৫. Pacman: আর্ক লিনাক্স এবং আর্ক-ভিত্তিক সিস্টেমের জন্য
Pacman হল আর্ক লিনাক্সের প্যাকেজ ম্যানেজার। এটি সরাসরি আর্কের রোলিং রিলিজ মডেল অনুসরণ করে।
- কমান্ড উদাহরণ:
প্যাকেজ ইনস্টল করা:
sudo pacman -S package-nameপ্যাকেজ আপডেট করা:
sudo pacman -Syu
প্যাকেজ ম্যানেজমেন্টের সুবিধা
- সহজ এবং দ্রুত ইনস্টলেশন:
- প্যাকেজ ম্যানেজার ব্যবহার করে ব্যবহারকারী সহজে এবং দ্রুত সফটওয়্যার ইনস্টল করতে পারে, যা সিস্টেমের অন্যান্য ফাইলগুলোর সাথে ইন্টিগ্রেটেড থাকে।
- ডিপেন্ডেন্সি ম্যানেজমেন্ট:
- প্যাকেজ ম্যানেজার স্বয়ংক্রিয়ভাবে সফটওয়্যারের জন্য প্রয়োজনীয় অন্যান্য প্যাকেজগুলো ইনস্টল এবং আপডেট করে।
- আপডেট এবং রিমুভাল:
- প্যাকেজ ম্যানেজমেন্ট সিস্টেম ব্যবহার করে সফটওয়্যার দ্রুত আপডেট এবং রিমুভ করা যায়।
- সিস্টেমের নিরাপত্তা:
- প্যাকেজ ম্যানেজারগুলির মাধ্যমে আপনি সিস্টেমের জন্য সর্বশেষ নিরাপত্তা প্যাচ ইনস্টল করতে পারবেন, যা সিস্টেমকে নিরাপদ রাখে।
সারসংক্ষেপ
প্যাকেজ ম্যানেজমেন্ট সিস্টেম (PMS) হল একটি সফটওয়্যার টুল যা লিনাক্স এবং ইউনিক্স সিস্টেমে সফটওয়্যার প্যাকেজের ইনস্টলেশন, আপডেট, ম্যানেজমেন্ট এবং মুছে ফেলার কাজ সহজ করে। APT, YUM, DNF, Zypper, এবং Pacman বিভিন্ন ডিস্ট্রিবিউশনের জন্য জনপ্রিয় প্যাকেজ ম্যানেজমেন্ট সিস্টেম। এগুলি ডিপেন্ডেন্সি ম্যানেজমেন্ট, সিস্টেম নিরাপত্তা এবং ব্যবহারকারীর জন্য সহজ সফটওয়্যার পরিচালনা নিশ্চিত করে।
apt, yum, এবং dnf কমান্ড ব্যবহার করে প্যাকেজ ইনস্টলেশন এবং আপডেট
apt, yum, এবং dnf হল প্যাকেজ ম্যানেজার, যা UNIX/Linux সিস্টেমে সফটওয়্যার প্যাকেজ ইনস্টল, আপডেট এবং ম্যানেজ করার জন্য ব্যবহৃত হয়। তবে, এই প্যাকেজ ম্যানেজারগুলি বিভিন্ন ডিস্ট্রিবিউশন (distribution) অনুযায়ী ব্যবহৃত হয়।
apt: Ubuntu, Debian এবং তাদের ভিত্তিক ডিস্ট্রিবিউশনগুলিতে ব্যবহৃত হয়।yum: Red Hat, CentOS এবং Fedora (পুরনো ভার্সন) সিস্টেমে ব্যবহৃত হয়।dnf: Fedora এবং CentOS 8 এবং তার পরবর্তী সংস্করণগুলিতে ব্যবহৃত হয় (যাyumএর আধুনিক সংস্করণ)।
এখানে প্রতিটি প্যাকেজ ম্যানেজারের সাহায্যে প্যাকেজ ইনস্টল এবং আপডেট করার জন্য কিছু গুরুত্বপূর্ণ কমান্ডের উদাহরণ দেওয়া হল।
১. apt কমান্ড (Debian/Ubuntu ভিত্তিক)
apt হল Debian-based সিস্টেমের জন্য প্যাকেজ ম্যানেজার, যেমন Ubuntu, Linux Mint, এবং তাদের অন্যান্য ডিস্ট্রিবিউশন।
প্যাকেজ ইনস্টল করা:
sudo apt update # প্যাকেজ তালিকা আপডেট করুন
sudo apt install package # একটি প্যাকেজ ইনস্টল করুনকমান্ড উদাহরণ:
curlপ্যাকেজ ইনস্টল করা:sudo apt update sudo apt install curl
প্যাকেজ আপডেট করা:
sudo apt update # প্যাকেজ তালিকা আপডেট করুন
sudo apt upgrade # ইনস্টল করা সমস্ত প্যাকেজ আপডেট করুনসমস্ত প্যাকেজ আপগ্রেড করা (সিস্টেম আপডেট):
sudo apt full-upgrade # সমস্ত প্যাকেজ এবং সিস্টেম আপগ্রেড করুনপ্যাকেজ রিমুভ করা:
sudo apt remove package # একটি প্যাকেজ রিমুভ করুনপ্যাকেজ পরিষ্কার করা (অপ্রয়োজনীয় প্যাকেজগুলি মুছে ফেলা):
sudo apt autoremove # অপ্রয়োজনীয় প্যাকেজগুলি মুছে ফেলুন২. yum কমান্ড (Red Hat/CentOS 7 এবং তার পূর্ববর্তী ভার্সন)
yum হল Red Hat-based সিস্টেমের জন্য ব্যবহৃত প্যাকেজ ম্যানেজার, যেমন CentOS 7 এবং তার পূর্ববর্তী সংস্করণ।
প্যাকেজ ইনস্টল করা:
sudo yum install package # একটি প্যাকেজ ইনস্টল করুনকমান্ড উদাহরণ:
wgetপ্যাকেজ ইনস্টল করা:sudo yum install wget
প্যাকেজ আপডেট করা:
sudo yum update # সমস্ত ইনস্টল করা প্যাকেজ আপডেট করুনসিস্টেম আপগ্রেড করা:
sudo yum upgrade # সমস্ত প্যাকেজ এবং সিস্টেম আপগ্রেড করুনপ্যাকেজ রিমুভ করা:
sudo yum remove package # একটি প্যাকেজ রিমুভ করুনক্যাশে ক্লিন করা:
sudo yum clean all # সমস্ত ক্যাশে পরিষ্কার করুন৩. dnf কমান্ড (Fedora/CentOS 8 এবং পরবর্তী ভার্সন)
dnf হল Fedora এবং CentOS 8 এর জন্য ব্যবহৃত প্যাকেজ ম্যানেজার, যা yum এর আধুনিক সংস্করণ। dnf বেশি উন্নত এবং দ্রুত কাজ করে।
প্যাকেজ ইনস্টল করা:
sudo dnf install package # একটি প্যাকেজ ইনস্টল করুনকমান্ড উদাহরণ:
gitপ্যাকেজ ইনস্টল করা:sudo dnf install git
প্যাকেজ আপডেট করা:
sudo dnf update # সমস্ত প্যাকেজ আপডেট করুনসিস্টেম আপগ্রেড করা:
sudo dnf upgrade # সমস্ত প্যাকেজ এবং সিস্টেম আপগ্রেড করুনপ্যাকেজ রিমুভ করা:
sudo dnf remove package # একটি প্যাকেজ রিমুভ করুনক্যাশে ক্লিন করা:
sudo dnf clean all # সমস্ত ক্যাশে পরিষ্কার করুনসারসংক্ষেপ
| অপারেশন | apt (Debian/Ubuntu) | yum (Red Hat/CentOS 7) | dnf (Fedora/CentOS 8) |
|---|---|---|---|
| প্যাকেজ ইনস্টল | sudo apt install package | sudo yum install package | sudo dnf install package |
| প্যাকেজ আপডেট | sudo apt update && sudo apt upgrade | sudo yum update | sudo dnf update |
| সিস্টেম আপগ্রেড | sudo apt full-upgrade | sudo yum upgrade | sudo dnf upgrade |
| প্যাকেজ রিমুভ | sudo apt remove package | sudo yum remove package | sudo dnf remove package |
| ক্যাশে ক্লিন | sudo apt clean | sudo yum clean all | sudo dnf clean all |
এই প্যাকেজ ম্যানেজারগুলির সাহায্যে আপনি সহজেই আপনার সিস্টেমে সফটওয়্যার ইনস্টল, আপডেট এবং ম্যানেজ করতে পারবেন, যা আপনার সার্ভার এবং ডেস্কটপ ব্যবস্থাপনা আরও কার্যকরী করে তোলে।
সোর্স থেকে প্যাকেজ কম্পাইল করা
LINUX এবং UNIX সিস্টেমে অনেক সময় আপনি সফটওয়্যার প্যাকেজগুলিকে সোর্স কোড থেকে কম্পাইল করতে হতে পারে, কারণ নির্দিষ্ট সংস্করণটি আপনার প্যাকেজ ম্যানেজারে উপলব্ধ নাও থাকতে পারে অথবা আপনি নিজেই সেটিকে কাস্টমাইজ করতে চান। সোর্স কোড থেকে প্যাকেজ কম্পাইল করার জন্য কিছু নির্দিষ্ট পদক্ষেপ অনুসরণ করতে হয়।
এই প্রক্রিয়া সাধারণত ৩টি প্রধান ধাপে বিভক্ত: প্যাকেজ ডাউনলোড করা, ডিপেন্ডেন্সি ইনস্টল করা এবং সোর্স কোড কম্পাইল করা।
1. সোর্স কোড ডাউনলোড করা
প্রথমে আপনাকে সফটওয়্যারটির সোর্স কোড ডাউনলোড করতে হবে। বেশিরভাগ ওপেন সোর্স সফটওয়্যার তাদের অফিসিয়াল ওয়েবসাইট বা GitHub বা GitLab এর মতো প্ল্যাটফর্মে সোর্স কোড উপলব্ধ করে থাকে। আপনি wget, curl বা সরাসরি ব্রাউজার থেকে সোর্স কোডটি ডাউনলোড করতে পারেন।
উদাহরণ:
wget http://example.com/package.tar.gzএখানে package.tar.gz হলো সোর্স কোড আর্কাইভ।
অথবা যদি Git থেকে সোর্স কোড ক্লোন করতে চান:
git clone https://github.com/example/package.git2. ডিপেন্ডেন্সি ইনস্টল করা
সোর্স কোড কম্পাইল করার আগে সফটওয়ারের নির্দিষ্ট ডিপেন্ডেন্সি (যেমন লাইব্রেরি এবং অন্যান্য টুলস) ইনস্টল করা প্রয়োজন। বেশিরভাগ সফটওয়্যার ডিপেন্ডেন্সি সম্পর্কে তথ্য README বা INSTALL ফাইলগুলিতে প্রদান করে।
কিছু সাধারণ ডিপেন্ডেন্সি ইনস্টল করার উদাহরণ:
Debian/Ubuntu:
sudo apt update sudo apt install build-essential sudo apt install libtool libssl-devFedora:
sudo dnf groupinstall "Development Tools" sudo dnf install libtool openssl-develCentOS/RHEL:
sudo yum groupinstall "Development Tools" sudo yum install libtool openssl-devel
এগুলি কম্পাইলেশন টুল এবং লাইব্রেরি ইনস্টল করতে সহায়ক।
3. সোর্স কোড কম্পাইল করা
সোর্স কোড কম্পাইল করার জন্য বেশিরভাগ ওপেন সোর্স সফটওয়্যার configure, make, এবং make install কমান্ডগুলি ব্যবহার করে।
ধাপ ১: সোর্স কোড আনজিপ করা
যদি সোর্স কোড .tar.gz ফর্ম্যাটে থাকে, তবে প্রথমে এটি আনজিপ করতে হবে:
tar -xvzf package.tar.gz
cd package/ধাপ ২: configure স্ক্রিপ্ট রান করা
configure স্ক্রিপ্টটি সাধারণত সফটওয়ারের কনফিগারেশন সেটিংস পরীক্ষা করে এবং সিস্টেমের জন্য প্রয়োজনীয় ফাইল এবং ডিরেক্টরির তালিকা তৈরি করে।
./configureএটি আপনার সিস্টেমের জন্য প্রয়োজনীয় ফাইল এবং ডিপেন্ডেন্সি পরীক্ষা করে এবং কনফিগারেশন ফাইল তৈরি করে।
অপশন: আপনি configure স্ক্রিপ্টের সাথে অতিরিক্ত অপশনও ব্যবহার করতে পারেন, যেমন কাস্টম ইনস্টলেশন ডিরেক্টরি সেট করতে:
./configure --prefix=/usr/localধাপ ৩: make রান করা
make কমান্ডটি সোর্স কোডের ফাইলগুলো কম্পাইল করে, অর্থাৎ সোর্স কোডকে বাইনারি ফর্মে রূপান্তরিত করে।
makeধাপ ৪: make install রান করা
এটি কম্পাইল করা প্রোগ্রামটি সিস্টেমে ইনস্টল করে। এটি সাধারণত /usr/local/bin বা আপনার নির্দিষ্ট ইনস্টলেশন ডিরেক্টরিতে ইনস্টল হয়।
sudo make install4. ইনস্টলেশন পরবর্তী কাজ
অনেক সময় make clean কমান্ডটি ব্যবহার করা হয় সোর্স কোড ফোল্ডারের মধ্যে অস্থায়ী ফাইল এবং কম্পাইলেশন ফাইল মুছে ফেলার জন্য।
make cleanএছাড়াও, কিছু সফটওয়্যার ইনস্টল করার পর কনফিগারেশন বা ফিচারস চালু করার জন্য পুনরায় সিস্টেম রিস্টার্ট বা কনফিগারেশন ফাইলগুলি পুনরায় লোড করতে হতে পারে।
উদাহরণ: সাধারণ প্যাকেজ কম্পাইল প্রক্রিয়া
ধরা যাক, আপনি example_package নামে একটি সফটওয়্যার সোর্স কোড ডাউনলোড করেছেন।
সোর্স কোড ডাউনলোড:
wget http://example.com/example_package.tar.gz tar -xvzf example_package.tar.gz cd example_packageডিপেন্ডেন্সি ইনস্টল:
sudo apt install build-essential libtool libssl-devকনফিগারেশন স্ক্রিপ্ট রান:
./configureকম্পাইল এবং ইনস্টল:
make sudo make install(ঐচ্ছিক) ক্লিন আপ:
make clean
সারসংক্ষেপ
সোর্স থেকে প্যাকেজ কম্পাইল করা একটি প্রক্রিয়া যা সফটওয়্যার সোর্স কোড ডাউনলোড, ডিপেন্ডেন্সি ইনস্টল, কনফিগারেশন স্ক্রিপ্ট রান, সোর্স কোড কম্পাইল এবং ইনস্টলেশন নিয়ে গঠিত। এই প্রক্রিয়া ব্যবহারকারীদের নির্দিষ্ট সফটওয়্যার কাস্টমাইজ এবং ম্যানুয়ালি ইনস্টল করার জন্য সাহায্য করে, যখন এটি তাদের প্যাকেজ ম্যানেজার দ্বারা সরবরাহিত না হয়।
tar এবং gzip ব্যবহার করে ফাইল কমপ্রেশন এবং আনকমপ্রেশন
tar এবং gzip হল দুটি শক্তিশালী এবং জনপ্রিয় টুল যা লিনাক্স এবং UNIX সিস্টেমে ফাইল কমপ্রেশন এবং আনকমপ্রেশন (decompression) করতে ব্যবহৃত হয়। tar সাধারণত একাধিক ফাইল বা ডিরেক্টরি একটি একক ফাইল আর্কাইভে প্যাক করার জন্য ব্যবহৃত হয়, এবং gzip ফাইলগুলিকে কম্প্রেস (সংকুচিত) করতে ব্যবহৃত হয়।
এই দুটি টুল একসাথে ব্যবহৃত হয় যাতে একটি ফোল্ডার বা ফাইল কম্প্রেস করা এবং পরে তা আনকমপ্রেস করা যায়।
1. tar কমান্ড
tar (tape archive) কমান্ড ব্যবহার করে আপনি একাধিক ফাইল বা ডিরেক্টরি একত্রে একটি আর্কাইভ ফাইলে প্যাক করতে পারেন। এটি ফাইলগুলির মধ্যে সম্পর্ক বজায় রাখে এবং একটি ফাইল আর্কাইভ তৈরি করে, যা সহজে স্টোর এবং ট্রান্সফার করা যায়।
tar কমান্ডের গঠন:
tar [অপশন] [আর্কাইভ ফাইলের নাম] [ফাইল/ডিরেক্টরি]কমন অপশনসমূহ:
-c: আর্কাইভ তৈরি করতে ব্যবহৃত হয়।-x: আর্কাইভ থেকে ফাইল বের করতে ব্যবহৃত হয়।-f: আর্কাইভ ফাইলের নাম উল্লেখ করতে ব্যবহৃত হয়।-v: আর্কাইভ করা ফাইলগুলি প্রদর্শন করতে ব্যবহৃত হয় (verbose mode)।-z:gzipকম্প্রেসন চালাতে ব্যবহৃত হয়।
2. ফাইল কমপ্রেশন (Compression) - tar এবং gzip
ফাইল কমপ্রেশন করতে, আপনি tar এবং gzip একত্রে ব্যবহার করতে পারেন যাতে আর্কাইভ ফাইলটি কম্প্রেস হয়ে একটি ছোট আকারে রূপান্তরিত হয়।
ফাইল কম্প্রেস করা (tar + gzip):
একটি বা একাধিক ফাইল বা ডিরেক্টরি আর্কাইভ এবং কম্প্রেস করতে:
tar -czvf archive.tar.gz /path/to/directoryএখানে:
-c: আর্কাইভ তৈরি করা-z:gzipদ্বারা কম্প্রেস করা-v: প্রক্রিয়া দেখানো (optional)-f: আর্কাইভ ফাইলের নাম (archive.tar.gz)/path/to/directory: আপনি যে ডিরেক্টরি বা ফাইল কম্প্রেস করতে চান তার পাথ
এই কমান্ডটি /path/to/directory ডিরেক্টরির সমস্ত ফাইল এবং সাব-ডিরেক্টরি নিয়ে একটি archive.tar.gz নামক কম্প্রেসড আর্কাইভ তৈরি করবে।
3. ফাইল আনকমপ্রেসন (Decompression) - tar এবং gzip
কমপ্রেস করা ফাইল আনকমপ্রেস করতে tar এবং gzip টুলের সাথে কিছু অপশন ব্যবহার করতে হয়।
ফাইল আনকমপ্রেস করা (tar + gzip):
একটি .tar.gz ফাইল আনকমপ্রেস করতে:
tar -xzvf archive.tar.gzএখানে:
-x: আর্কাইভ থেকে ফাইল বের করা-z:gzipদ্বারা কম্প্রেসড আর্কাইভ ডিকমপ্রেস করা-v: আউটপুট প্রদর্শন করা (optional)-f: আর্কাইভ ফাইলের নাম (archive.tar.gz)
এই কমান্ডটি archive.tar.gz ফাইলটি আনকমপ্রেস করবে এবং এর ভিতরের সমস্ত ফাইল এবং ডিরেক্টরি বর্তমান ডিরেক্টরিতে এক্সট্রাক্ট করবে।
ফাইল আনকমপ্রেস করা শুধুমাত্র gzip দিয়ে:
যদি আপনি শুধুমাত্র gzip দিয়ে একটি .gz ফাইল আনকমপ্রেস করতে চান, তাহলে:
gzip -d file.gzএখানে:
-d: ডিকমপ্রেস করতে ব্যবহৃত হয়।file.gz: সেই ফাইলটির নাম যা আপনি আনকমপ্রেস করতে চান।
এটি file.gz ফাইলটি আনকমপ্রেস করে file নামে একটি নতুন ফাইল তৈরি করবে।
4. tar এবং gzip এর অন্য অপশনসমূহ
tarকমান্ডে আরও কিছু অপশন:-t: আর্কাইভের মধ্যে কি কি ফাইল আছে তা দেখানোর জন্য।tar -tzvf archive.tar.gz-u: বিদ্যমান আর্কাইভে নতুন ফাইল যোগ করার জন্য।tar -uvf archive.tar.gz newfile.txt
gzipকমান্ডে অন্যান্য অপশন:-k: কম্প্রেস করা ফাইলটি রেখে যাওয়া (অরিজিনাল ফাইলটি মুছে ফেলা হবে না)।gzip -k file.txt-l:.gzফাইলের ইনফরমেশন দেখানো।gzip -l file.gz
সারসংক্ষেপ
tar: একটি কমান্ড যা একাধিক ফাইল বা ডিরেক্টরি একত্রে আর্কাইভ করে, যাতে এগুলি একটি একক ফাইলের মতো হতে পারে।gzip: একটি কমান্ড যা ফাইলগুলোকে কম্প্রেস করে এবং তাদের আকার ছোট করে দেয়।
ফাইল কম্প্রেশন:
tar -czvf archive.tar.gz /path/to/directory-tarএবংgzipএকত্রে ফাইল কম্প্রেস করতে।
ফাইল আনকমপ্রেসন:
tar -xzvf archive.tar.gz-tarএবংgzipদিয়ে আর্কাইভ আনকমপ্রেস করতে।gzip -d file.gz- শুধুমাত্রgzipদিয়ে ফাইল আনকমপ্রেস করতে।
এগুলো ব্যবহার করে আপনি দ্রুত এবং কার্যকরভাবে ফাইল এবং ডিরেক্টরি কম্প্রেস এবং আনকমপ্রেস করতে পারবেন।
Read more