স্ট্যান্ডার্ড (অফিসিয়াল) RHEL/CentOS সংগ্রহস্থলগুলি অল্প সংখ্যক মৌলিক প্যাকেজ অফার করে যেগুলিতে সর্বদা প্রোগ্রামগুলির সর্বশেষ সংস্করণ থাকে না। যাইহোক, আপনি Red Hat Enterprise Linux, CentOS, Oracle Linux এবং Scientific Linux-এ নতুন প্রোগ্রাম ইনস্টল করার জন্য তৃতীয় পক্ষের সর্বজনীন বা ব্যক্তিগত সংগ্রহস্থল ব্যবহার করতে পারেন। Remi এবং EPEL হল সবচেয়ে জনপ্রিয় তৃতীয় পক্ষের সংগ্রহস্থল। এই নিবন্ধে, আমরা CentOS-এ yum (dnf) প্যাকেজ ম্যানেজারের সাথে অতিরিক্ত সংগ্রহস্থলগুলি কীভাবে ইনস্টল, পরিচালনা এবং ব্যবহার করব তা দেখব।
রিপোজিটরি হল লিনাক্সের জন্য RPM সফ্টওয়্যার প্যাকেজগুলির একটি আপডেটযোগ্য স্টোর। বিভিন্ন প্যাকেজ ম্যানেজার প্রোগ্রামগুলি ইনস্টল এবং আপডেট করতে নেটওয়ার্ক সংগ্রহস্থল ব্যবহার করতে পারে।
CentOS এ EPEL এবং Remi Repository কিভাবে সক্ষম করবেন?
আপনি যখন একটি OS ইনস্টল করেন (আমাদের উদাহরণে, এটি CentOS 7), মৌলিক সংগ্রহস্থলগুলি ডিফল্টরূপে ইনস্টল করা হয়। আপনি কমান্ড ব্যবহার করে তাদের তালিকা দেখতে পারেন:
yum repolist
আপনি স্ক্রিনশটে দেখতে পাচ্ছেন, সিস্টেমে 3টি সংগ্রহস্থল ইনস্টল করা আছে — বেস , অতিরিক্ত , আপডেট . মৌলিক সফ্টওয়্যার এবং অতিরিক্ত সংগ্রহস্থল ইনস্টল করা শুরু করার জন্য এগুলি যথেষ্ট।
আসুন বিবেচনা করি কিভাবে CentOS-এ অতিরিক্ত সংগ্রহস্থল ইনস্টল করতে হয়।
EPEL আজ সবচেয়ে জনপ্রিয় ভান্ডার হতে পারে।
EPEL (এন্টারপ্রাইজ লিনাক্সের জন্য অতিরিক্ত প্যাকেজ) ফেডোরা টিম দ্বারা উপলব্ধ একটি উন্মুক্ত এবং বিনামূল্যে সংগ্রহস্থল প্রকল্প। এটিতে লিনাক্স ডিস্ট্রোসের জন্য অতিরিক্ত সফ্টওয়্যারের উচ্চ-মানের প্যাকেজ রয়েছে। এই সংগ্রহস্থলে এফটিপি সার্ভার থেকে পিএইচপি এবং সিস্টেম মনিটরিং টুলে প্রচুর সংখ্যক প্যাকেজ রয়েছে। এটি সবচেয়ে জনপ্রিয় ভান্ডার। এটি লক্ষ করা উচিত যে EPEL প্যাকেজগুলি নেটিভ CentOS/RHEL প্যাকেজের সাথে বিরোধ করে না এবং তাদের প্রতিস্থাপন করে না।RPM প্যাকেজ ব্যবহার করে CentOS 7 (CentOS 6 এর বিপরীতে) EPEL ইনস্টল করা খুবই সহজ (এটি একটি নতুন রেপো যোগ করার সবচেয়ে সহজ পদ্ধতি):
yum install epel-release
ইন্সটল হওয়ার পর, রিপোজিটরি কোনো অ্যাকশন ছাড়াই রেপো তালিকায় উপস্থিত হয় (আপনাকে yum ক্যাশে সাফ করার দরকার নেই)।
CentOS এ Remi সংগ্রহস্থল ইনস্টল করতে, এই কমান্ডটি চালান:
rpm -ivh https://rpms.famillecollet.com/enterprise/remi-release-7.rpm
আপনার প্রয়োজনীয় সংগ্রহস্থলের জন্য যদি কোনো RPM প্যাকেজ না থাকে, তাহলে আপনি .repo একটি কনফিগার ফাইল তৈরি করে এটি যোগ করতে পারেন। /etc/yum.repos.d-এ ম্যানুয়ালি (পরবর্তী নিবন্ধ বিভাগ দেখুন)।
প্যাকেজগুলি কোন সংগ্রহস্থল থেকে ইনস্টল করা হয়েছে তা বোঝার জন্য, আপনি প্যাকেজের সম্পূর্ণ তালিকা প্রদর্শন করতে পারেন:
yum list installed
আপনি দেখতে পাচ্ছেন, প্রতিটি প্যাকেজের তথ্য রয়েছে যে রিপোজিটরি থেকে এটি ইনস্টল করা হয়েছে (নীচের স্ক্রিনশটে বেস, আপডেট, ইপেল এবং অ্যানাকোন্ডা রিপোজ রয়েছে)।
আপনি একটি নির্দিষ্ট রেপোতে ইনস্টলেশনের জন্য উপলব্ধ প্যাকেজগুলির তালিকা প্রদর্শন করতে পারেন:
yum repo-pkgs epel list
রিপোজিটরি কনফিগারেশন ফাইল (*.repo)
সমস্ত সংগ্রহস্থল কনফিগারেশন ফাইল /etc/yum.repos.d/-এ অবস্থিত এবং *.repo আছে এক্সটেনশন একটি সাধারণ কনফিগারেশন ফাইলে নিম্নলিখিত প্যারামিটার থাকে:
- নাম — সংগ্রহস্থলের নাম
- baseurl — একটি সংগ্রহস্থলের লিঙ্ক (এটি হতে পারে ftp://address, https://address, https://address বা file://address for a local repo)
- সক্ষম৷ – এই রেপো ব্যবহার করা আবশ্যক কিনা:1 — রেপো সক্রিয় করা হয়েছে, 0 — রেপো নিষ্ক্রিয় করা হয়েছে;
- অসিঙ্ক – সমান্তরাল প্যাকেজ ডাউনলোডিং ব্যবহার করবেন কিনা (স্বয়ংক্রিয়/চালু/বন্ধ)
- gpgcheck – একটি GPG চেক করতে হবে কিনা (1 — চেক চালু আছে)
- gpgkey — একটি GPG কী র লিঙ্ক
- বাদ দিন — বাদ দেওয়া প্যাকেজের তালিকা
- includepkgs — অন্তর্ভুক্ত প্যাকেজের তালিকা
- মিররলিস্ট - সংগ্রহস্থল আয়নার তালিকা
ক্ষুদ্রতম রেপো ফাইলটি এইরকম দেখতে পারে:
[rep_name] name=rep_name baseurl=rep_url
উদাহরণস্বরূপ, আপনি REMI সংগ্রহস্থল ইনস্টল করার পরে, কিছু Remi (remi-*.repo) কনফিগারেশন ফাইল সংগ্রহস্থল ডিরেক্টরিতে উপস্থিত হবে৷
আপনি দেখতে পাচ্ছেন, রেমির প্রতিটি পিএইচপি সংস্করণের জন্য একটি পৃথক কনফিগারেশন ফাইল রয়েছে। আপনাকে কনফিগার ফাইলের মাধ্যমে আপনার প্রয়োজনীয় পিএইচপি সংস্করণ সক্ষম করতে হবে। উদাহরণস্বরূপ, আমার সার্ভারে PHP 7.3 ইনস্টল থাকবে, তাই আমি সংশ্লিষ্ট রেপো সক্ষম করেছি (আমি enabled=1
উল্লেখ করেছি remi-php73.repo
-এ ):
আপনি ম্যানুয়ালি সংগ্রহস্থল সংযোগ করতে পারেন. এটি করতে, /etc/yum.repos.d/-এ একটি সংগ্রহস্থল কনফিগারেশন ফাইল তৈরি করুন। মারিয়াডিবি রেপো যোগ করা যাক।
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
সেন্টস-এ একটি সংগ্রহস্থল কীভাবে নিষ্ক্রিয় করবেন?
ইনস্টল করা সংগ্রহস্থলগুলির একটি নিষ্ক্রিয় করার জন্য, সক্ষম=0 নির্দিষ্ট করা যথেষ্ট এর কনফিগারেশন ফাইলে।
তারপর ইয়াম ক্যাশে পরিষ্কার করুন:
yum clean all
এবং এটি পুনরায় তৈরি করুন:
yum makecache
এর পরে আপনি প্যাকেজগুলি ইনস্টল বা আপডেট করার সময় remi-php73 রেপো ব্যবহার করা হবে না৷
আপনি যদি শুধুমাত্র বর্তমান প্যাকেজ আপডেট/ইনস্টলেশন কমান্ডের জন্য একটি সংগ্রহস্থল ব্যবহার করতে না চান, আপনি yum কমান্ডে এটি নিষ্ক্রিয় করতে পারেন, উদাহরণস্বরূপ:
yum update —disablerepo=epel
এই উদাহরণে, আমরা EPEL নিষ্ক্রিয় করেছি এবং ইনস্টল করা প্যাকেজ আপডেট করেছি।
আপনি অস্থায়ীভাবে সমস্ত সংগ্রহস্থল অক্ষম করতে পারেন আপনার প্রয়োজন নেই৷ উদাহরণস্বরূপ, শুধুমাত্র MariaDB সংগ্রহস্থল থেকে প্যাকেজ আপডেট করতে, কমান্ডটি চালান:
yum update --disablerepo "*" --enablerepo=mariadb
repos নিষ্ক্রিয় বা অপসারণ করতে, yum-config-manager যেটি yum-utils টুলের অন্তর্গত ব্যবহার করা হয়।
yum-utils ইনস্টল করুন:
yum -y install yum-utils
একটি সংগ্রহস্থল অক্ষম করুন, উদাহরণস্বরূপ, remi:
yum-config-manager --disable remi
একটি সংগ্রহস্থল সম্পূর্ণরূপে অপসারণ করতে, আপনাকে অবশ্যই এর কনফিগারেশন ফাইলগুলি সরিয়ে ফেলতে হবে এবং yum ক্যাশে আপডেট করতে হবে৷
উপলভ্য প্যাকেজ আপডেটের জন্য কিভাবে রেপো চেক করবেন?
উপলব্ধ প্যাকেজ আপডেটের জন্য আপনি একটি নির্দিষ্ট সংগ্রহস্থল পরীক্ষা করতে পারেন৷
yum check-update --disablerepo "*" --enablerepo=mariadb
এইভাবে, আপনি আপনার সার্ভারে সংযুক্ত রেপো পরিচালনা করতে পারেন। মনে রাখবেন যে বিভিন্ন সংগ্রহস্থলে একই প্যাকেজ থাকতে পারে, এবং আপডেটের সময় সংস্করণ দ্বন্দ্ব দেখা দিতে পারে। তাই শুধুমাত্র সেই রিপোজিটরিগুলোই ছেড়ে দিন যার সাথে আপনি কাজ করেন।
CentOS এবং RHEL-এর জন্য জনপ্রিয় তৃতীয় পক্ষের সংগ্রহস্থল
মারিয়াডিবি রেপো, আপনি এটির নাম দ্বারা অনুমান করতে পারেন, এতে মারিয়াডিবি প্যাকেজ রয়েছে। রিপোজিটরিটি 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 স্ট্যাক কনফিগার করার জন্য সংগ্রহস্থলের এই তালিকাটি যথেষ্ট।
এই সংগ্রহস্থলের তালিকা প্রায় যেকোনো ব্যবহারকারীর জন্য যথেষ্ট হতে পারে, তবে, আমি আরও কিছু উদাহরণ দেব।
ওয়েবট্যাটিক সীমিত সংখ্যক বিশেষজ্ঞদের দ্বারা সমর্থিত, বেশিরভাগই এটি অ্যান্ডি থম্পসন। এটিতে পিএইচপি সম্পর্কিত প্যাকেজ রয়েছে, তবে এটি রেমির চেয়ে কম জনপ্রিয়, কারণ এই নিবন্ধটি লেখার সময় এই সংগ্রহস্থলের সর্বশেষ 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 ইনস্টল করতে চান, আপনি এই রেপো সক্ষম করতে পারেন। উদাহরণস্বরূপ, আপনি 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-এ সংগ্রহস্থল ব্যবস্থাপনার কিছু দিক দেখিয়েছি এবং কিছু দরকারী সংগ্রহস্থল অধ্যয়ন করেছি।