এই পোস্টে Red Hat, CentOS, Fedora, Oracle ইত্যাদি ডিস্ট্রিবিউশনে RPM (RPM Package Manager) পদ্ধতি ব্যবহার করে কিভাবে Internet/DVD/ISO ফাইল থেকে সফটওয়্যার বা প্যাকেজ (RPMs) ইন্সটল বা রিমুভ (Uninstall) করা যাবে, এই বিষয়ের উপর ধারাবাহিক ভাবে আলোচনা করা হবে।
RPM (RPM Package Manager) হচ্ছে লিনাক্স কার্নেল ভিত্তিক অপারেটিং সিস্টেমের প্যাকেজ বা সফটওয়্যার ইনস্টল করার সবচেয়ে সহজ এবং জনপ্রিয় পদ্ধতি। RPM পদ্ধতি ব্যবহার করে সহজে Internet/DVD/ISO ফাইল থেকে সফটওয়্যার বা প্যাকেজ (RPMs) ইন্সটল বা রিমুভ (Uninstall) করা যাবে। RPM হচ্ছে Red Hat, CentOS, Fedora, Oracle ইত্যাদি ডিস্ট্রিবিউশনের সবচেয়ে পুরাতন বা ম্যানুয়াল প্যাকেজ/সফটওয়্যার ইনস্টল করার পদ্ধতি।‘rpm’ কমান্ড ব্যবহার করে বিভিন্ন প্যাকেজ Install, Uninstall, Query, Update, Upgrade, Verify সহ যাবতীয় কাজ করা যাবে বা প্যাকেজ সম্পর্কিত নানা তথ্য পাওয়া যাবে। বর্তমানে অবশ্য ‘YUM এবং DNF’ পদ্ধতি ব্যবহার করে উক্ত কাজ গুলা খুব সহজে করা যায়। GNU Linux অপারেটিং সিস্টেমের যে সকল ডিস্ট্রিবিউশনের প্যাকেজ বা সফটওয়্যারের এক্সটেনশন ‘.rpm’ থাকে, একমাত্র সেই সকল ডিস্ট্রিবিউশনে ‘rpm’ কমান্ড কাজ করবে।
RPM Source
যে সকল সোর্স থেকে প্যাকেজ (RPMs) সংগ্রহ করা যেতে পারে সেই সকল সোর্সের লিস্ট নিচে দেওয়া হয়েছে। ‘CentOS/RHEL 8’ এর ‘ISO/DVD’ তে প্রায় ৭০০০ এর (সাত হাজার) বেশি প্যাকেজ (RPMs) থাকে। যখন ‘RHEL/CentOS 8’ ইন্সটল করা হয়, তখন প্রায় ১৪০০+ প্যাকেজ (RPMs) ইন্সটল হয়, বাকি প্যাকেজ (RPMs) পরবর্তীতে দরকার হলে ইন্সটল করা যাবে। প্রাথমিক ভাবে আমরা নিচের তিনটি (০৩) সোর্স থেকে প্যাকেজ (RPMs) সংগ্রহ করতে পারি।
1. RHEL/CentOS/Fedora/Oracle এর DVD/ISO ফাইল থেকে।
2. সংশ্লিষ্ট কোম্পানির ওয়েবসাইট থেকে, যেমনঃ Teamviewer, Anydesk, Firefox, Sublime Text ইত্যাদি।
3. বিভিন্ন ওয়েব সাইট থেকে (নিচে লিস্ট দেওয়া হয়েছে)।
লিনাক্সের (RHEL/CentOS/Fedora/Oracle) ডিভিডি বা ISO ফাইলে প্যাকেজ (RPMs) পাওয়া যাবে। আবার কিছু প্যাকেজ (RPMs) আছে যেগুলা বিভিন্ন প্রতিষ্ঠান কর্তৃক ডেভেলপ করা হয়, যেমনঃ Teamviewer, Anydesk, Firefox, Sublime Text ইত্যাদি। এছাড়া ইন্টারনেটে কিছু ওয়েব সাইট আছে, যারা সকল ধরণের প্যাকেজ (RPMs) সংগ্রহ করে রাখে। নিচে কিছু ওয়েব সাইটের লিস্ট দেওয়া হয়েছেঃ
RPM Commands by Examples
RPM (Package) ইন্সটল করার বিভিন্ন পদ্ধতি আছে, তার মধ্যে RPM, YUM, DNF এই তিনটি পদ্ধতি ব্যবহার করে Red Hat, CentOS, Fedora, Oracle ইত্যাদি ডিস্ট্রিবিউশনের মাঝে প্যাকেজ (RPMs) ইন্সটল করা হয়। এখানে শুধু ‘RPM’ পদ্ধতি ব্যবহার করে প্যাকেজ (RPMs) ইন্সটল দেখানো হবে। উল্লেখ্য যে, ‘RPM’ পদ্ধতি হচ্ছে ম্যানুয়াল পদ্ধতি, এই পদ্ধতিতে প্যাকেজ ইন্সটল করতে চাইলে, প্যাকেজ অবশ্যই নির্দিষ্ট লোকেশনে থাকতে হবে। অর্থাৎ প্যাকেজ ডিরেক্টরি (Path) এবং প্যাকেজের পূর্ণ নাম না দিলে প্যাকেজ ইন্সটল করা যাবে না। RPM পদ্ধতি ব্যবহার করে একই সময়ে মাত্র একটি প্যাকেজ (RPM) ইন্সটল করা যাবে। অপরদিকে ‘DNF’ এবং ‘YUM’ পদ্ধতি ব্যবহার করে একই সময়ে অনেক প্যাকেজ ইন্সটল এবং রিমুভ করা যায় এবং এক্ষেত্রে প্যাকেজের পূর্ণ নাম দেওয়ার দরকার নাই, এমনকি ইন্টারনেট কানেক্টিভিটি থাকলে ইন্টারনেট থেকে প্যাকেজ সংগ্রহ করে ইন্সটল হবে। নিচে RPM পদ্ধতি ব্যবহার করে প্যাকেজ খোঁজা, ইন্সটল করা, রিমুভ করা ইত্যাদি বিষয় দেখানো হয়েছেঃ
- সিস্টেমে কি কি প্যাকেজ (RPMs) ইনস্টল আছে সেটা দেখার কমান্ডঃ
[root@desktop ~]# rpm -qa
device-mapper-event–1.02.169-3.el8.x86_64
llvm-libs–9.0.1-4.module+el8.2.0+5887+847e8a86.x86_64
python3-pwquality–1.4.0-9.el8.x86_64
platform-python–3.6.8-23.el8.x86_64
============= Some Output Omittied ==========
• সর্বমোট কতগুলো প্যাকেজ (RPMs) ইন্সটল আছে সেটা জানতে চাইলে নিচের কমান্ডঃ
[root@desktop ~]# rpm -qa | wc -l
1349
• নির্দিষ্ট কোনো প্যাকেজ (RPM) ইন্সটল আছে কিনা সেটা দেখার জন্য নিচের কমান্ডঃ
[root@desktop ~]# rpm -qa | grep firefox
firefox–68.6.0-1.el8_1.x86_64
নোটঃ উপরের কমান্ডের আউটপুট দেখা যাচ্ছে ‘firefox’ প্যাকেজ (RPM) ইন্সটল আছে।
- প্যাকেজ (RPM) ইন্সটলের পরে কোন স্ক্রিপ্ট (Script) রান করে সেটা দেখার জন্য নিচের কমান্ডঃ
- কোনো প্যাকেজ (RPM) সম্পর্কে বিস্তারিত তথ্য জানতে চাইলে নিচের কমান্ডঃ
নোটঃ উপরের কমান্ডের আউটপুটে প্যাকেজের (RPM) নাম, ভার্সন, সাইজ, লাইসেন্স, ডিজিটাল সিগনেচার, কোম্পনির নাম, ইন্সটল আছে কিনা, কি কাজে ব্যবহার হয়, ইত্যাদি তথ্য পাওয়া যাবে।
- কোনো প্যাকেজ (RPM) ইনস্টলকরার জন্য নিচের কমান্ডঃ
নোটঃ উপরের কমান্ডের মাধ্যমে ‘vsftpd’ প্যাকেজটি (RPM) ইন্সটল করা হয়েছে। উল্লেখ্য যে যখন ‘rpm’ কমান্ড ব্যবহার করা হবে, তখন প্যাকেজের পূর্ণ নাম এক্সটেনশন সহ লিখতে হবে।
- কোনো প্যাকেজ (RPM) পুরাতন ভার্সন থেকে নতুন ভার্সন আপগ্রেড করতে চাইলে নিচের কমান্ডঃ
- কিছু কিছু প্যাকেজ (RPMs) ইন্সটলের ক্ষেত্রে নিচের আউটপুটেড় মত অতিরিক্ত প্যাকেজ (RPMs) (Dependencies) দরকার হয়, ফলে মূল প্যাকেজ (RPM) ইন্সটল হয় না।
- অতিরিক্ত প্যাকেজ (RPMs) (Dependencies) সহ প্যাকেজ (RPM) ইন্সটল করার জন্য নিচের কমান্ডঃ
নোটঃ উপরের কমান্ডে ‘rpm -ivh’ এর সাথে ‘–nodeps’ অপশন যোগ করে অতিরিক্ত RPMs ছাড়াই ‘net-snmp’ প্যাকেজটি (RPMs) ইন্সটল হয়েছে।
- কোনো কমান্ডের বিপরীতে কোন প্যাকেজ (RPM) ইন্সটল আছে, সেটা জানার জন্য নিচের কমান্ডঃ
[root@desktop ~]# which ifconfig
/usr/sbin/ifconfig
[root@desktop ~]# rpm -qf /usr/sbin/ifconfig
net-tools-2.0-0.51.20160912git.el8.x86_64
নোটঃ উপরের প্রথম কমান্ডে ‘ifconfig’ কমান্ড কোন ডিরেক্টরি থেকে রান করে সেটা চেক করা হয়েছে। দ্বিতীয় কমান্ডে ‘-qf’ অপশনের সাথে কমান্ডের পাথ উল্লেখ করলে প্যাকেজের (RPMs) নাম জানা যাবে।
- কোনো প্যাকেজ (RPM) ইন্সটলের পরে সেটার কনফিগারেশন ফাইল বের করতে নিচের কমান্ডঃ
[root@desktop ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
- প্যাকেজ (RPM) ইন্সটলের পরে কি কি ফাইল কোন কোন লোকেশনে থাকে সেটা জানার জন্যঃ
[root@desktop ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
============= Some Output Omittied ==========
- প্যাকেজ (RPM) রিমুভ (Uninstall) করার জন্য ‘-e’ (erase) অপশন সহ নিচের কমান্ডঃ
[root@desktop ~]# rpm -e vsftpd
[root@desktop ~]# rpm -qa | grep vsftpd
নোটঃ প্যাকেজ রিমুভ (Uninstall) এর ক্ষেত্রে প্যাকেজের (RPM) পূর্ণ নাম লেখতে হবে না। প্যাকেজ (RPM) রিমুভ (Uninstall) হলে পরে দ্বিতীয় কমান্ড দিয়ে দেখা যেতে পারে ঠিক ঠাক রিমুভ (Uninstall) হয়েছে কিনা।