স্ট্যান্ডার্ড (অফিসিয়াল) RHEL/CentOS রিপোজিটরিগুলো محدود সংখ্যক বেসিক প্যাকেজ অফার করে যেগুলো সর্বশেষ সংস্করণের প্রোগ্রাম ধারণ করে না। তবে, আপনি থার্ড-পার্টি পাবলিক বা প্রাইভেট রিপোজিটরি ব্যবহার করে Red Hat Enterprise Linux, CentOS, Oracle Linux এবং Scientific Linux-এ নতুন প্রোগ্রাম ইনস্টল করতে পারেন। Remi এবং EPEL সবচেয়ে জনপ্রিয় থার্ড-পার্টি রিপোজিটরি। এই আর্টিকেলে আমরা yum (dnf) প্যাকেজ ম্যানেজার ব্যবহার করে CentOS-এ অতিরিক্ত রিপোজিটরি ইনস্টল, ম্যানেজ এবং ব্যবহার করার পদ্ধতি দেখব।
রিপোজিটরি হলো লিনাক্সের জন্য RPM সফটওয়্যার প্যাকেজের একটি আপডেটযোগ্য স্টোর। বিভিন্ন প্যাকেজ ম্যানেজার নেটওয়ার্ক রিপোজিটরি ব্যবহার করে প্রোগ্রাম ইনস্টল এবং আপডেট করতে পারে।
CentOS-এ EPEL এবং Remi রিপোজিটরি সক্ষম কিভাবে করবেন?
OS ইনস্টল করার সময় (আমাদের উদাহরণে CentOS 7), বেসিক রিপোজিটরিগুলো ডিফল্টভাবে ইনস্টল থাকে। আপনি এই কমান্ড দিয়ে তাদের তালিকা দেখতে পারেন:
yum repolist
স্ক্রিনশটে দেখুন, সিস্টেমে ৩টি রিপোজিটরি ইনস্টল করা আছে — base, extras, updates। বেসিক সফটওয়্যার এবং অতিরিক্ত রিপোজিটরি ইনস্টল করার জন্য এগুলো যথেষ্ট।
আসুন CentOS-এ এক্সট্রা রিপোজিটরি ইনস্টল করার পদ্ধতি দেখি।
EPEL আজকের দিনে সবচেয়ে জনপ্রিয় রিপোজিটরি হতে পারে।
EPEL (Extra Packages for Enterprise Linux) হলো Fedora টিম দ্বারা প্রদত্ত একটি ওপেন এবং ফ্রি রিপোজিটরি প্রজেক্ট। এতে লিনাক্স ডিস্ট্রিবিউশনের জন্য উচ্চ মানের অতিরিক্ত সফটওয়্যার প্যাকেজ থাকে। এই রিপোজিটরি FTP সার্ভার থেকে PHP এবং সিস্টেম মনিটরিং টুলস পর্যন্ত ব্যাপক সংখ্যক প্যাকেজ হোস্ট করে। এটি সবচেয়ে জনপ্রিয় রিপোজিটরি। মনে রাখবেন যে EPEL প্যাকেজগুলো নেটিভ CentOS/RHEL প্যাকেজের সাথে конфлиক্ট করে না এবং তাদের প্রতিস্থাপন করে না।
CentOS 7-এ EPEL ইনস্টল করা খুব সহজ (CentOS 6-এর মত নয়) RPM প্যাকেজ ব্যবহার করে (এটি নতুন রিপো যোগ করার সবচেয়ে সহজ পদ্ধতি):
yum install epel-release
ইনস্টল হওয়ার পর, রিপোজিটরি যেকোনো অ্যাকশন ছাড়াই (yum ক্যাশ ক্লিয়ার করার প্রয়োজন নেই) রিপো তালিকায় প্রদর্শিত হয়।
CentOS-এ Remi রিপোজিটরি ইনস্টল করতে এই কমান্ডটি চালান:
rpm -ivh https://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Remi CentOS-এ আরেকটি জনপ্রিয় রিপোজিটরি। এতে PHP এবং MySQL-এর সর্বশেষ সংস্করণ থাকে। এটি Remi Collet তৈরি করেছেন। এই রিপোজিটরি ব্যবহার করতে আপনার OS-এ EPEL রিপো সক্ষম থাকতে হবে। দয়া করে লক্ষ্য করুন যে এর কিছু প্যাকেজ বেসিক রিপোজিটরির প্যাকেজের সাথে конфлиক্ত করতে পারে।
আপনার প্রয়োজনীয় রিপোজিটরির জন্য যদি RPM প্যাকেজ না থাকে, তবে আপনি /etc/yum.repos.d ডিরেক্টরিতে ম্যানুয়ালি .repo কনফিগারেশন ফাইল তৈরি করে যোগ করতে পারেন (পরবর্তী সেকশনে দেখানো হয়েছে)।
প্যাকেজগুলো কোন রিপোজিটরি থেকে ইনস্টল হয়েছে বুঝতে, আপনি ইনস্টল করা প্যাকেজের পূর্ণ তালিকা দেখতে পারেন:
yum list installed
আপনি দেখতে পাবেন, প্রতিটি প্যাকেজের पास সেটি কোন রিপোজিটরি থেকে ইনস্টল হয়েছে তার তথ্য থাকে (স্ক্রিনশটে base, update, epel এবং anaconda রিপো দেখা যাচ্ছে)।
নির্দিষ্ট একটি রিপোজিটরিতে ইনস্টলেশনের জন্য উপলব্ধ প্যাকেজের তালিকা দেখতে:
yum repo-pkgs epel list
রিপোজিটরি কনফিগারেশন ফাইল (*.repo)
সকল রিপোজিটরি কনফিগারেশন ফাইল /etc/yum.repos.d/-এ অবস্থান করে এবং এদের এক্সটেনশন *.repo। একটি টিপিক্যাল কনফিগারেশন ফাইল নিচের প্যারামিটারগুলো ধারণ করে:
- name — রিপোজিটরির নাম
- baseurl — রিপোজিটরির লিংক (ftp://address, https://address, https://address বা লোকাল রিপোর জন্য file://address হতে পারে)
- enabled — এই রিপো ব্যবহার করা হবে কিনা: ১ — রিপো সক্রিয়, ০ — রিপো নিষ্ক্রিয়;
- async — প্যারাালেল প্যাকেজ ডাউনলোড ব্যবহার করা হবে কিনা (auto/on/off)
- gpgcheck — GPG চেক করা হবে কিনা (১ — চেক অন)
- gpgkey — GPG কী-এর লিংক
- exclude — বাদ দেওয়া প্যাকেজের তালিকা
- includepkgs — অন্তর্ভুক্ত করা প্যাকেজের তালিকা
- mirrorlist — রিপোজিটরি মিররোর তালিকা
সর্বনিম্ন রিপো ফাইলটি এভাবে দেখতে পারে:
[rep_name] name=rep_name baseurl=rep_url
উদাহরণস্বরূপ, REMI রিপোজিটরি ইনস্টল করার পর, রিপোজিটরি ডিরেক্টরিতে কিছু Remi (remi-*.repo) কনফিগারেশন ফাইল প্রদর্শিত হবে।
আপনি দেখতে পাচ্ছেন, Remi-র প্রতিটি PHP সংস্করণের জন্য আলাদা কনফিগারেশন ফাইল আছে। আপনাকে কনফিগারেশন ফাইলের মাধ্যমে আপনার প্রয়োজনীয় PHP সংস্করণ সক্রিয় করতে হবে। উদাহরণস্বরূপ, আমার সার্ভারে PHP 7.3 ইনস্টল থাকবে, তাই আমি tilsvarende রিপো সক্রিয় করলাম (remi-php73.repo-তে enabled=1 নির্দিষ্ট করলাম):
আপনি ম্যানুয়ালি রিপোজিটরি সংযুক্ত করতে পারেন। এর জন্য /etc/yum.repos.d/-এ একটি রিপোজিটরি কনফিগারেশন ফাইল তৈরি করুন। আসুন MariaDB রিপো যোগ করি।
nano /etc/yum.repos.d/mariadb.repo
MariaDB প্যাকেজ ডেভেলপার দ্বারা প্রদত্ত ডেটা যোগ করুন:
[mariadb] name = MariaDB baseurl = https://yum.mariadb.org/10.4/centos73-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
CentOS-এ রিপোজিটরি ডিজেবল কিভাবে করবেন?
ইনস্টল করা রিপোজিটরির একটি ডিজেবল করতে, এর কনফিগারেশন ফাইলে enabled=0 নির্দিষ্ট করলেই হবে।
তারপর yum ক্যাশ ক্লিয়ার করুন:
yum clean all
এবং পুনরায় তৈরি করুন:
yum makecache
এর পর remi-php73 রিপো প্যাকেজ ইনস্টল বা আপডেট করার সময় ব্যবহার করা হবে না।
আপনি যদি শুধু বর্তমান প্যাকেজ আপডেট/ইনস্টলেশন কমান্ডের জন্য একটি রিপোজিটরি ব্যবহার না করতে চান, তবে yum কমান্ডে এটি ডিজেবল করতে পারেন, উদাহরণস্বরূপ:
yum update --disablerepo=epel
এই উদাহরণে, আমরা EPEL ডিজেবল করেছি এবং ইনস্টল করা প্যাকেজগুলো আপডেট করেছি।
আপনি অস্থায়ীভাবে অপ্রয়োজনীয় সকল রিপোজিটরি ডিজেবল করতে পারেন। উদাহরণস্বরূপ, শুধু MariaDB রিপোজিটরি থেকে প্যাকেজ আপডেট করতে এই কমান্ডটি চালান:
yum update --disablerepo "*" --enablerepo=mariadb
রিপোজিটরি ডিজেবল বা মুছে ফেলার জন্য yum-utils টুলসের অংশ yum-config-manager ব্যবহার করা হয়।
yum-utils ইনস্টল করুন:
yum -y install yum-utils
একটি রিপোজিটরি ডিজেবল করুন, উদাহরণস্বরূপ remi:
yum-config-manager --disable remi
একটি রিপোজিটরি সম্পূর্ণরূপে মুছে ফেলতে, এর কনফিগারেশন ফাইলগুলো মুছে yum ক্যাশ আপডেট করতে হবে।
রিপোতে উপলব্ধ প্যাকেজ আপডেট চেক কিভাবে করবেন?
আপনি একটি নির্দিষ্ট রিপোজিটরি যাচাই করতে পারেন যে সেখানে প্যাকেজ আপডেট উপলব্ধ কিনা।
yum check-update --disablerepo "*" --enablerepo=mariadb
এভাবে আপনি আপনার সার্ভারে সংযুক্ত রিপোজিটরি ম্যানেজ করতে পারেন। লক্ষ্য করুন যে বিভিন্ন রিপোজিটরিতে একই প্যাকেজ থাকতে পারে, এবং আপডেটের সময় সংস্করণ সংঘর্ষ হতে পারে। তাই শুধু যেসব রিপোজিটরি আপনি ব্যবহার করছেন সেগুলোই সক্রিয় রাখুন।
CentOS এবং RHEL-এর জনপ্রিয় থার্ড-পার্টি রিপোজিটরি
MariaDB রিপো, নাম অনুযায়ী, MariaDB প্যাকেজ ধারণ করে। এই রিপোজিটরি MariaDB ডেভেলপাররা তৈরি করেছেন, এটি ধারাবাহিকভাবে সাপোর্ট এবং আপডেট করা হয়।
সিস্টেমে এই রিপোজিটরি ইনস্টল করতে, নিচের কন্টেন্ট সহ একটি .repo ফাইল তৈরি করুন:
[mariadb] name = MariaDB baseurl = https://yum.mariadb.org/10.4/centos73-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
পূর্বের রিপোর মত, Nginx-ও nginx HTTPD সার্ভারের সাথে সম্পর্কিত প্যাকেজ ধারণ করে।
nginx রিপো ইনস্টল করতে, একটি .repo ফাইল তৈরি করুন এবং নিচের টেক্সট যোগ করুন:
[nginx-stable] name=nginx stable repo baseurl=https://nginx.org/packages/CentOS/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key
এই রিপোজিটরির তালিকা nginx-কে ফ্রন্ট-এন্ড সার্ভার হিসেবে ব্যবহার করে সো-কলড LAMP স্ট্যাক কনফিগার করার জন্য পর্যাপ্ত।
প্রায় যেকোনো ব্যবহারকারীর জন্য এই রিপোজিটরি তালিকা যথেষ্ট হতে পারে, তবে আমি আরও কিছু উদাহরণ দিচ্ছি।
Webtatic সীমিত সংখ্যক এক্সপার্ট দ্বারা সাপোর্ট করা হয়, অধিকাংশে Andy Thompson। এতে PHP সংক্রান্ত প্যাকেজ থাকে, কিন্তু এটি Remi-এর চেয়ে কম জনপ্রিয়, কারণ এই আর্টিকেল লেখার সময় এই রিপোজিটরিতে সর্বশেষ PHP সংস্করণ ছিল 7.2।
yum repo-pkgs webtatic list | grep php7
mod_php71w.x86_64 7.1.31-1.w7 webtatic mod_php72w.x86_64 7.2.21-1.w7 webtatic ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ php72w-tidy.x86_64 7.2.21-1.w7 webtatic php72w-xml.x86_64 7.2.21-1.w7 webtatic php72w-xmlrpc.x86_64 7.2.21-1.w7 webtatic
রিপোজিটরি সক্ষম করতে নিচের RPM প্যাকেজ ইনস্টল করুন:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
MySQL-এর কথা আমি মনে করিয়ে রাখতে চাই। আমি এটি জনপ্রিয় مواردের সাথে রাখিনি, কারণ আমি মনে করি ডাটাবেস সার্ভার হিসেবে MySQL তার অবস্থান হারিয়েছে। সার্ভারগুলিতে সাধারণত MariaDB ইনস্টল করা হয়। যাইহোক, কেউ যদি MySQL ইনস্টল করতে চান, তবে এই রিপো সক্ষম করতে পারেন। উদাহরণস্বরূপ, আপনি mysql 5.7 ইনস্টল করতে চান:
প্যাকেজ ডাউনলোড করুন:
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
এবং ইনস্টল করুন:
rpm -Uvh mysql57-community-release-el7-9.noarch.rpm
ইনস্টলেশনের পর আমি MySQL ইনস্টল করতে পারি।
এই আর্টিকেলে আমরা CentOS-এ রিপোজিটরি ম্যানেজমেন্টের কিছু দিক দেখিয়েছি এবং কিছু উপকারী রিপোজিটরি নিয়ে আলোচনা করেছি।