YUM अपडेट से एक विशिष्ट रेपो को छोड़ दें


13

मैं आरएचईएल 5.5 पर एक सिस्टम वाइड यम अपडेट कर रहा हूं और आईयूएस ईपीएल रिपॉजिटरी एक लापता निर्भरता त्रुटि फेंक रहा है:

php53-mcrypt-5.3.3-4.ius.el5.x86_64 from installed has depsolving problems
--> Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-   5.3.3-4.ius.el5.x86_64 (installed)
Error: Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-5.3.3-4.ius.el5.x86_64 (installed)

क्या इस निर्भरता मुद्दे को छोड़ने के लिए IUS EPEL रेपो की अनदेखी करने वाले अन्य सभी रिपॉजिटरी के खिलाफ YUM अपडेट चलाने का एक तरीका है ?

स्पष्टीकरण

मैं केवल रेडहैट नेटवर्क से अपडेट इंस्टॉल करने का प्रयास कर रहा हूं। मुझे रेपो नाम नहीं मिल रहा है इसलिए मैं ऐसा कुछ करने में असमर्थ हूं sudo yum --disablerepo=* --enablerepo=rhel updateजैसा कि मैं जिस yum के संस्करण का उपयोग कर रहा हूं वह बाद में सूचीबद्ध कई रिपॉजिटरी का समर्थन नहीं करता है --disablerepo

अपडेट करें

मेरा अस्थायी हल चलाना है sudo yum --exclude=php53* update। मुझे यकीन है कि एक बेहतर तरीका है। इस बेहतर तरीके में वास्तविक समस्या को ठीक करना शामिल है, इसलिए मैंने आईयूएस सामुदायिक परियोजना के साथ एक बग भी दायर किया ।

अद्यतन # 2

लगता है कि मुझे निर्भरता के साथ मुद्दा मिला । मुझे अभी भी लगता है कि एक व्यवहार्य समाधान होना चाहिए।

धन्यवाद!


आपके स्पष्टीकरण को ध्यान में रखने के लिए मैंने अपना उत्तर अपडेट कर दिया है।
plasmid87

जवाबों:


21

अक्षम रेपो स्विच आज़माएं:

--disablerepo=REPONAME

अपडेट करें

वर्तमान में "ज्ञात" (सक्षम और अक्षम) सभी रिपॉजिटरी खोजने के लिए:

yum repolist all

फिर यह जानने के लिए कि कौन सा भंडार आपको उपरोक्त पैकेज के लिए दुःख दे रहा है, कोशिश करें:

yum list php53-mcrypt-5.3.3-4.ius.el5.x86_64 --showduplicates

यह तब दिखाएगा कि आपकी कौन सी रिपॉजिटरी उपरोक्त पैकेज प्रदान करती है (आप सूची में "स्थापित" भी देखेंगे, स्थानीय रूप से स्थापित पैकेज दिखाने के लिए)।

अक्षम रेपो स्विच का उपयोग करके रिपॉजिटरी को जानने के बाद एक बार फिर से निष्क्रिय स्विच की कोशिश करें।

yum update --disablerepo=[from above]

आप जिस विकल्प को छोड़ना चाहते हैं, उसे एकल-आउट करने के लिए ऊपर दिए चरणों को पूरा करने के लिए /etc/yum.repos.d/ के माध्यम से देखने का प्रयास करें , जो कि रिपॉजिटरी परिभाषाओं के लिए RHEL डिफ़ॉल्ट स्थान है। एक बार इस निर्देशिका में, सभी गैर-मानक आरएचईएल बेस का पता लगाएं और रिपॉजिटरी फ़ाइलों को अपडेट करें और सक्षम करें = 0 , जैसे;

[repo]
enabled=0

उम्मीद है की यह मदद करेगा।


यदि मैं कई रिपॉजिटरी निर्दिष्ट करने में सक्षम था तो यह काम कर सकता है। मैंने कोशिश की --disablerepo=epel --disablerepo=iusऔर --disablerepo=epel,ius
रॉबिन

yum repolist allदिखाता है कि केवल निम्नलिखित रेपो सक्षम हैं: एपेल, आईयूएस और आरएचएल-एक्स 86_64-सर्वर -5। आपका --showduplicatesकमांड उस पैकेज को दिखाता है जैसे कि ius रेपो से संस्थापित किया गया है। इसलिए मैंने निम्नलिखित की कोशिश की sudo yum --disablerepo=* --enablerepo=rhel-x86_64-server-5 updateऔर यह अभी भी उसी पैकेज पर निर्भरता त्रुटि फेंक रहा है। साथ ही मैंने enabled=0/etc/yum.repos.d/ के तहत सेटिंग बदलकर रेपो को निष्क्रिय करने की कोशिश की
रॉबिन

मुझे लगता है कि जब आपने IUS रेपो स्थापित किया था, तो इसे डिफ़ॉल्ट रूप से सक्षम करने के लिए कॉन्फ़िगर किया गया था। इसके बजाय यह प्रयास करें: sudo yum update --disablerepo=iusयह मानते हुए कि अन्य सभी रिपॉजिट डिफ़ॉल्ट रूप से सक्षम हैं। अन्यथा, sudo yum update --exclude=php53-mcrypt-5.3.3-4.ius.el5.x86_64इस पैकेज को पूरी तरह से छोड़ने का प्रयास करें।
plasmid87

इनमें से कोई भी विकल्प काम नहीं करता है। मुझे कुछ याद आ रहा है।
रॉबिन

मैं तब केवल कल्पना कर सकता हूं कि अद्यतन प्रक्रिया के भाग के रूप में उस पैकेज को कुछ और चाहिए। यदि आप sudo yum deplist php53-mcrypt-5.3.3-4.ius.el5.x86_64इसे चलाते हैं तो आपको उस विशेष पैकेज के लिए सभी निर्भरताएं और प्रदाता दिखाई देंगे। PHP पैकेज और आरएचईएल के साथ मेरे अनुभव में, यह एक आम समस्या है। हाथ में इस मुद्दे से विचलित करने के लिए नहीं, लेकिन मैं PHP के लिए सबसे अच्छा पैकेज प्रदान करने के लिए रेमी मिल गया है , मैं उनके repos के लिए जाने के बाद PHP के साथ एक निर्भरता मुद्दा कभी नहीं था।
plasmid87

1

ऐसा करने का सबसे आसान तरीका यह है कि आप अपने अवांछित रेपो के साथ लिनक्स को /etc/yum.repos.d.d/ में टिप्पणी करें


1

आप yum कमांड लाइन पर कई रिपॉजिटरी को निष्क्रिय कर सकते हैं:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 --disablerepo=myrepo3

हालाँकि, यदि आप ऐसा करते हैं, तो आपको अपने इच्छित रेपो को स्पष्ट रूप से सक्षम करना चाहिए:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 \
           --disablerepo=myrepo3 --enablerepo=TheRepoIWant

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.