स्टैंडर्ड (आधिकारिक) RHEL/CentOS रिपॉजिटरी बेसिक पैकेज की एक छोटी संख्या प्रदान करती हैं जिनमें हमेशा प्रोग्राम के लेटेस्ट संस्करण नहीं होते हैं। हालांकि, आप Red Hat Enterprise Linux, CentOS, Oracle Linux और Scientific Linux में नए प्रोग्राम इंस्टॉल करने के लिए थर्ड-पार्टी पब्लिक या प्राइवेट रिपॉजिटरी का उपयोग कर सकते हैं। Remi और EPEL सबसे लोकप्रिय थर्ड-पार्टी रिपॉजिटरी हैं। इस लेख में, हम देखेंगे कि CentOS में yum (dnf) पैकेज मैनेजर के साथ अतिरिक्त रिपॉजिटरी को कैसे इंस्टॉल, मैनेज और उपयोग किया जाए।
रिपॉजिटरी Linux के लिए RPM सॉफ़्टवेयर पैकेज का एक अपडेटेबल स्टोर है। विभिन्न पैकेज मैनेजर प्रोग्राम इंस्टॉल और अपडेट करने के लिए नेटवर्क रिपॉजिटरी का उपयोग कर सकते हैं।
CentOS में EPEL और Remi रिपॉजिटरी कैसे इनेबल करें?
जब आप OS इंस्टॉल करते हैं (हमारे उदाहरण में, यह CentOS 7 है), तो बेसिक रिपॉजिटरी डिफ़ॉल्ट रूप से इंस्टॉल हो जाती हैं। आप इस कमांड का उपयोग करके उनकी सूची देख सकते हैं:
yum repolist

जैसा कि आप स्क्रीनशॉट में देख सकते हैं, सिस्टम में 3 रिपॉजिटरी इंस्टॉल हैं — base, extras, updates। बेसिक सॉफ़्टवेयर और अतिरिक्त रिपॉजिटरी इंस्टॉल करना शुरू करने के लिए ये पर्याप्त हैं।
आइए देखते हैं कि CentOS में अतिरिक्त रिपॉजिटरी कैसे इंस्टॉल करें।
EPEL आज सबसे लोकप्रिय रिपॉजिटरी हो सकती है।
EPEL (Extra Packages for Enterprise Linux) Fedora टीम द्वारा प्रदान किया गया एक ओपन और फ्री रिपॉजिटरी प्रोजेक्ट है। इसमें Linux डिस्ट्रो के लिए अतिरिक्त सॉफ़्टवेयर के उच्च गुणवत्ता वाले पैकेज होते हैं। यह रिपॉजिटरी FTP सर्वर से लेकर PHP और सिस्टम मॉनिटरिंग टूल्स तक बड़ी संख्या में पैकेज होस्ट करती है। यह सबसे लोकप्रिय रिपॉजिटरी है। यह ध्यान देने योग्य है कि EPEL पैकेज नेटिव CentOS/RHEL पैकेज के साथ कन्फ्लिक्ट नहीं करते हैं और उन्हें रिप्लेस नहीं करते हैं।
CentOS 7 में EPEL इंस्टॉल करना 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 — इस रेपो का उपयोग किया जाना चाहिए या नहीं: 1 — रेपो इनेबल है, 0 — रेपो डिसेबल है;
- async — पैरेलल पैकेज डाउनलोड का उपयोग करना है या नहीं (auto/on/off)
- gpgcheck — GPG चेक करना है या नहीं (1 — चेक ऑन है)
- gpgkey — GPG की का लिंक
- exclude — एक्सक्लूडेड पैकेज की सूची
- includepkgs — इन्क्लूडेड पैकेज की सूची
- mirrorlist — रिपॉजिटरी मिरर की सूची
सबसे छोटी रेपो फ़ाइल इस तरह दिख सकती है:
[rep_name] name=rep_name baseurl=rep_url
उदाहरण के लिए, REMI रिपॉजिटरी इंस्टॉल करने के बाद, रिपॉजिटरी डायरेक्टरी में कुछ Remi (remi-*.repo) कॉन्फिगरेशन फ़ाइलें दिखाई देंगी।

जैसा कि आप देख सकते हैं, Remi के पास प्रत्येक PHP संस्करण के लिए एक अलग कॉन्फिगरेशन फ़ाइल है। आपको कॉन्फिग फ़ाइल के माध्यम से आवश्यक PHP संस्करण इनेबल करना होगा। उदाहरण के लिए, मेरे सर्वर पर PHP 7.3 इंस्टॉल होगा, इसलिए मैंने संबंधित रेपो इनेबल किया है (मैंने 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-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 रेपो, जैसा कि आप इसके नाम से अनुमान लगा सकते हैं, 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 में रिपॉजिटरी मैनेजमेंट के कुछ पहलुओं को दिखाया और कुछ उपयोगी रिपॉजिटरी का अध्ययन किया।