इस लेख में, हम YUM पैकेज मैनेजर पर विचार करेंगे जो प्रोग्राम (RPM पैकेज) की इंस्टॉलेशन, रिमूवल और अपडेटिंग को मैनेज करने, निर्भरताओं को ऑटोमैटिकली हल करने और अतिरिक्त रिपॉजिटरी मैनेज करने की अनुमति देता है। यह लेख शुरुआती Linux एडमिनिस्ट्रेटर के लिए yum चीट शीट के रूप में उपयोगी होगा।
Yum (Yellowdog Updater Modified) RPM पैकेज पर आधारित Linux डिस्ट्रो के लिए एक कंसोल पैकेज मैनेजर है (RedHat Package Manager)। इनमें RedHat, CentOS, Fedora, Oracle Linux, Scientific Linux जैसे लोकप्रिय OS शामिल हैं।
YUM का उपयोग करके पैकेज इंस्टॉल, अपडेट और रिमूव करना
कहां से शुरू करें? किसी भी अन्य मामले की तरह, आइए मदद से शुरू करें:
yum help — yum पर पूरी मदद
मैं सबसे लोकप्रिय yum कमांड्स को हाइलाइट करूंगा:
yum clean all— सभी पैकेज का कैश क्लीन करता है (आमतौर पर उपयोग किया जाता है यदि yum के साथ कोई समस्या हो)yum makecache— पैकेज कैश रीक्रिएट करता हैyum repolist— सभी कनेक्टेड रिपॉजिटरी की सूची प्रदर्शित करता है, आउटपुट इस तरह दिखता है:Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: * extras: * updates: repo id repo name status base/7/x86_64 CentOS-7 - Base 10,019 extras/7/x86_64 CentOS-7 - Extras 435 updates/7/x86_64 CentOS-7 - Updates 2,500 repolist: 12,954मेरे सिस्टम पर केवल स्टैंडर्ड CentOS 7 रिपॉजिटरी इंस्टॉल हैं: Base, Extras और Updates।
yum list available— इंस्टॉलेशन के लिए उपलब्ध सभी पैकेज की सूची प्रदर्शित करता है।yum list installed— सिस्टम में इंस्टॉल सभी पैकेज की सूची दिखाता है।yum list kernel— Linux कर्नेल से संबंधित पैकेज की सूची प्रदर्शित करता है।आप चेक कर सकते हैं कि कोई विशिष्ट पैकेज आपके CentOS सर्वर पर इंस्टॉल है या नहीं (उदाहरण के लिए, apache पैकेज स्टेटस चेक करें):
yum list installed httpdInstalled Packages httpd.x86_64 2.4.6-89.el7.centos.1 @updatesआप किसी विशिष्ट पैकेज के बारे में विस्तृत जानकारी प्राप्त कर सकते हैं। उदाहरण के लिए, आइए MariaDB पैकेज के बारे में अधिक जानकारी प्राप्त करें:
yum info mariadb
पैकेज इंस्टॉल करने के लिए,
yum installका उपयोग किया जाता है। Apache वेब सर्वर इंस्टॉल करने के लिए, यह कमांड चलाएं:yum install httpdयदि किसी भी yum कमांड को चलाते समय आपको "Traceback (most recent call last):thread.error: can't start new thread" एरर दिखाई देता है, तो संभावना है कि आपके सर्वर पर पर्याप्त RAM नहीं है। कुछ RAM जोड़ने का प्रयास करें या yum प्लगइन्स डिसेबल करें (
/etc/yum.confमेंplugins=0निर्दिष्ट करें)।पैकेज इंस्टॉल करने से पहले, आप इस कमांड का उपयोग करके इसकी निर्भरताएं चेक कर सकते हैं:
yum deplist httpdयदि आप कोई पैकेज इंस्टॉल करना चाहते हैं, लेकिन आप उसका पूरा नाम भूल गए हैं, तो आप
*वाइल्डकार्ड का उपयोग कर सकते हैं। उदाहरण के लिए:yum install epel-*Resolving Dependencies --> Running transaction check ---> Package epel-release.noarch 0:7-11 will be installed --> Finished Dependency Resolution Install 1 Package Total download size: 15 k Installed size: 24 k Is this ok [y/d/N]:यदि आप बस दर्ज करते हैं:
yum install epelNo package epel available. Error: Nothing to doआपको कोई पैकेज उपलब्ध नहीं दिखाई देगा।
Yum एक साथ कई पैकेज इंस्टॉल कर सकता है:
yum install httpd php wget rsyslogपैकेज को रीइंस्टॉल करने के लिए:
yum reinstall proftpdYum के साथ इंस्टॉल किए गए पैकेज को हटाने के लिए, remove पैरामीटर का उपयोग किया जाता है:
yum remove httpdकिसी भी पैकेज को हटाने से पहले, इसकी निर्भरताएं चेक करने की अनुशंसा की जाती है (ऐसे पैकेज हैं जो उन्हें हटाने का प्रयास करते समय कुछ अन्य पैकेज को हटाने का कारण बनते हैं)।
yum deplist proftpd
नाम या विवरण से पैकेज खोजने के लिए:
yum search nginxProvides ऑप्शन का उपयोग करके, आप विशिष्ट फ़ाइल वाले पैकेज ढूंढ सकते हैं, उदाहरण के लिए:
yum provides */squid.confसभी इंस्टॉल किए गए पैकेज अपडेट करने के लिए, यह कमांड चलाएं:
yum updateआप पैकेज को उसके नाम से अपडेट कर सकते हैं:
yum update phpआप इस कमांड के साथ चेक कर सकते हैं कि आपके सिस्टम के लिए कोई उपलब्ध अपडेट हैं या नहीं:
yum check-updateउपलब्ध सुरक्षा अपडेट के बारे में जानकारी प्राप्त करने के लिए:
yum updateinfo list securityकुछ मामलों में, पैकेज या सर्विस अपडेट करने के बाद समस्याएं हो सकती हैं। उदाहरण के लिए, php संस्करण अपडेट करने के बाद आपकी साइट काम करना बंद कर देती है। आप yum का उपयोग करके पिछले पैकेज संस्करण पर वापस जा सकते हैं:
yum downgrade phpआप grouplist के साथ पैकेज की ग्रुप इंस्टॉलेशन का भी उपयोग कर सकते हैं। रिपॉजिटरी में अलग-अलग प्रोग्राम सेट के साथ कुछ पूर्वनिर्धारित पैकेज ग्रुप होते हैं। आप इन ग्रुप की सूची प्रदर्शित कर सकते हैं:
yum grouplistआइए देखते हैं कि यह "Basic Web Server" सूची के उदाहरण पर कैसे काम करता है। ग्रुप और इसके पैकेज के बारे में अधिक जानने के लिए:
yum groupinfo "Basic Web Server"
चेक करने के बाद हम देखते हैं कि वेब सर्वर के लिए पैकेज और सर्विस का सेट इंस्टॉल किया जाएगा।
यहां एक और उपयोगी ग्रुप सूची है — "System Administration Tools":
yum groupinfo "System Administration Tools"
जैसा कि आप देख सकते हैं, सूची में मॉनिटरिंग और डीबगिंग टूल्स हैं।
आप इस कमांड का उपयोग करके ग्रुप सूची इंस्टॉल कर सकते हैं:
yum groupinstall "System Administration Tools"इंस्टॉल किए गए पैकेज एक अलग ब्लॉक ("Installed Groups") में दिखाई देंगे:
YUM History कमांड का उपयोग
आप yum इंस्टॉलेशन हिस्ट्री (ट्रांजेक्शन की सूची) इस कमांड का उपयोग करके प्रदर्शित कर सकते हैं:
yum history listआउटपुट में 5 कॉलम होते हैं, पहला वाला ट्रांजेक्शन ID दिखाता है जिसका उपयोग ट्रांजेक्शन डिटेल्स (इंस्टॉल किए गए पैकेज, निर्भरताएं) देखने के लिए किया जा सकता है।
उदाहरण के लिए:
yum history info 10
इसके अलावा, आप इस कमांड का उपयोग करके ट्रांजेक्शन को पूर्ववत कर सकते हैं:
yum history undo 10मेरे मामले में, 4 पैकेज हटाए गए होते:
आप /var/log/yum.log में yum पैकेज इंस्टॉलेशन/रिमूवल के बारे में जानकारी देख सकते हैं:
cat /var/log/yum.logउपयोगी YUM कमांड ऑप्शन
Yum के कुछ उपयोगी ऑप्शन हैं जिनकी आपको पैकेज मैनेज करने के लिए अक्सर आवश्यकता हो सकती है। सभी yum आउटपुट को एरर के अलावा दबाने के लिए -y ऑप्शन का उपयोग करें। उदाहरण के लिए:
yum update -y yum install httpd -yनहीं कहने के लिए, इस ऑप्शन का उपयोग करें:
--assumenoYum को किसी भी प्लगइन के बिना उपयोग करने या उनमें से एक को डिसेबल करने के लिए, पैरामीटर का उपयोग करें:
--noplugins --disableplugin=fastestmirrorडिसेबल प्लगइन को इनेबल करने के लिए:
--enableplugin=fastestmirrorडिसेबल रेपो का उपयोग करने के लिए:
yum update --enablerepo=atomicYum में किसी विशिष्ट रिपॉजिटरी को डिसेबल करने के लिए:
yum update --disablerepo=atomicYUM कॉन्फिगरेशन फ़ाइल /etc/yum.conf
YUM कॉन्फिगरेशन फ़ाइल
/etc/yum.confहै।मुख्य कॉन्फिग फ़ाइल पैरामीटर हैं:
- cachedir — लोकल पैकेज कैश (डिफ़ॉल्ट रूप से, /var/cache/yum)
- logfile — yum लॉग फ़ाइल का पथ
- obsoletes — अप्रचलित पैकेज अपडेट करना है या नहीं (1 — हां, 0 — नहीं)
- gpgcheck — इंस्टॉलेशन से पहले पैकेज वेरिफाई करना है या नहीं (1 — हां, 0 — नहीं)
- keepcache — कैश रखना है या नहीं (1 — हां, 0 — नहीं)
- cachedir — yum कैश स्टोर करने की डायरेक्टरी (डिफ़ॉल्ट रूप से, /var/cache/yum)
- debuglevel — डीबग लेवल 1-10
- plugins — yum प्लगइन्स इनेबल करना (1 — हां, 0 — नहीं)
- bugtracker_url — वह लिंक जहां yum एरर रजिस्टर किए जाएंगे
- installonly_limit — एक पैकेज के लिए इंस्टॉल किए जा सकने वाले संस्करणों की अधिकतम संख्या
उपयोगी YUM प्लगइन्स
Yum में प्लगइन्स की आवश्यकता क्यों है? हर जगह की तरह, वे हमारा काम आसान बनाते हैं।
यहां कुछ लोकप्रिय प्लगइन्स और उनका विवरण दिया गया है:
- yum-plugin-fastestmirror — मिरर स्पीड मापता है और पैकेज इंस्टॉल करने के लिए सबसे तेज़ वाला प्रदान करता है।
- yum-plugin-security — केवल सुरक्षा अपडेट की सूची प्रदान करता है।
- yum-plugin-keys — keys, keys-info, keys-data, keys-remove पैरामीटर का उपयोग करने की अनुमति देता है
वह डायरेक्टरी जहां सभी प्लगइन्स स्टोर होते हैं, /etc/yum/ है।
- yum-plugin-versionlock — चयनित पैकेज को अपडेट होने से रोकता है
उपलब्ध yum प्लगइन्स की सूची प्रदर्शित करने के लिए, यह कमांड चलाएं:
yum search yum-plugin
======================================================================= N/S matched: yum-plugin ======================================================================= PackageKit-yum-plugin.x86_64 : Tell PackageKit to check for updates when yum exits fusioninventory-agent-yum-plugin.noarch : Ask FusionInventory agent to send an inventory when yum exits kabi-yum-plugins.noarch : The CentOS Linux kernel ABI yum plugin yum-plugin-aliases.noarch : Yum plugin to enable aliases filters yum-plugin-auto-update-debug-info.noarch : Yum plugin to enable automatic updates to installed debuginfo packages yum-plugin-changelog.noarch : Yum plugin for viewing package changelogs before/after updating yum-plugin-copr.noarch : Yum plugin to add copr command yum-plugin-fastestmirror.noarch : Yum plugin which chooses fastest repository from a mirrorlist yum-plugin-filter-data.noarch : Yum plugin to list filter based on package data yum-plugin-fs-snapshot.noarch : Yum plugin to automatically snapshot your filesystems during updates yum-plugin-keys.noarch : Yum plugin to deal with signing keys yum-plugin-list-data.noarch : Yum plugin to list aggregate package data yum-plugin-local.noarch : Yum plugin to automatically manage a local repo. of downloaded packages yum-plugin-merge-conf.noarch : Yum plugin to merge configuration changes when installing packages yum-plugin-ovl.noarch : Yum plugin to work around overlayfs issues yum-plugin-post-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on yum-plugin-pre-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on yum-plugin-priorities.noarch : plugin to give priorities to packages from different repos yum-plugin-protectbase.noarch : Yum plugin to protect packages from certain repositories. yum-plugin-ps.noarch : Yum plugin to look at processes, with respect to packages yum-plugin-remove-with-leaves.noarch : Yum plugin to remove dependencies which are no longer used because of a removal yum-plugin-rpm-warm-cache.noarch : Yum plugin to access the rpmdb files early to warm up access to the db yum-plugin-show-leaves.noarch : Yum plugin which shows newly installed leaf packages yum-plugin-tmprepo.noarch : Yum plugin to add temporary repositories yum-plugin-tsflags.noarch : Yum plugin to add tsflags by a commandline option yum-plugin-upgrade-helper.noarch : Yum plugin to help upgrades to the next distribution version yum-plugin-verify.noarch : Yum plugin to add verify command, and options yum-plugin-versionlock.noarch : Yum plugin to lock specified packages from being updated
आप yum install का उपयोग करके किसी अन्य पैकेज की तरह प्लगइन इंस्टॉल कर सकते हैं:
yum install yum-plugin-changelog
yum -y install yum-versionlock
प्लगइन का उपयोग करके पैकेज अपडेट ब्लॉक करने के लिए, निम्न कमांड चलाएं:
yum versionlock nginx
ब्लॉक किए गए पैकेज की सूची प्रदर्शित करने के लिए:
yum versionlock list
ब्लॉक सूची से पैकेज हटाने के लिए:
yum versionlock delete nginx

यदि आप प्लगइन का उपयोग नहीं करना चाहते हैं, तो आप इसे yum कमांड में निम्न ऑप्शन जोड़कर डिसेबल कर सकते हैं:
--disableplugin=fastestmirror
या आप सभी yum प्लगइन्स डिसेबल कर सकते हैं:
--noplugins
YUM के लिए प्रॉक्सी कैसे कॉन्फिगर करें?
Yum पैकेज रिपॉजिटरी के साथ इंटरैक्ट करने के लिए HTTP/1.1 प्रोटोकॉल का उपयोग करता है। यदि आपका Linux सर्वर केवल HTTP प्रॉक्सी सर्वर के माध्यम से इंटरनेट एक्सेस कर सकता है, तो आप अपने /etc/yum.conf फ़ाइल के [main] सेक्शन में प्रॉक्सी सर्वर का नाम निर्दिष्ट कर सकते हैं:
proxy=https://proxy_server_name:3128
यदि आपके प्रॉक्सी सर्वर को ऑथेंटिकेशन की आवश्यकता है, तो ये लाइनें भी जोड़ें:
proxy_username=proxy_user proxy_password=proxy_user_passw0rd
यह सुनिश्चित करने के लिए कि yum प्रॉक्सी सर्वर के माध्यम से काम करता है, इस कमांड का उपयोग करें:
yum clean all && yum search nginx
इसे चेक करने के लिए, मैंने एक जर्मन पब्लिक प्रॉक्सी सर्वर एड्रेस निर्दिष्ट किया, और इंस्टॉलेशन के दौरान fastestmirror प्लगइन ट्रिगर हुआ और इसने सबसे तेज़ स्पीड वाले मिरर ढूंढे:

यदि आप केवल कुछ रिपॉजिटरी के लिए प्रॉक्सी का उपयोग करना चाहते हैं, तो आपको /etc/yum.conf फ़ाइल में परिवर्तन करने की आवश्यकता नहीं है। आप इसके बजाय रिपॉजिटरी कॉन्फिगरेशन फ़ाइल /etc/yum.repos.d/your_config.repo में प्रॉक्सी सर्वर सेटिंग्स निर्दिष्ट कर सकते हैं।
तो हमने Linux CentOS/RHEL में RPM पैकेज मैनेजर, yum की बेसिक विशेषताओं पर विचार किया। अगले लेख में, हम दिखाएंगे कि YUM/DNF रिपॉजिटरी को अधिक विस्तार से कैसे मैनेज किया जाए।






