yum अन्य पैकेजों को अपडेट किए बिना पैकेज स्थापित करें या विफल रहें ...?


10

क्या yumपैकेज को स्थापित करने के लिए बताने का एक तरीका है , उस पैकेज के संस्करण का चयन करना जो वर्तमान में स्थापित निर्भरता से संतुष्ट होगा?

उदाहरण के लिए, यदि मैं एक pecl पैकेज स्थापित कर रहा हूं और मैंने वर्तमान में स्थापित किया है, php-5.4.11लेकिन एक नया php-5.4.14उपलब्ध है। नए पैकेज को स्थापित करने के बजाय (और 5.4.14 पर सभी php पैकेजों को अपडेट करें) मैं बस यह चाहता हूं कि मैं उस पैकेज के पुराने संस्करण का चयन करूं, जिसे मैंने अनुरोध किया है कि सभी अन्य को अपडेट किए बिना स्थापित किया जाए (या यदि ऐसा नहीं किया जा सकता है तो विफल)।

यह एक विशिष्ट मामला है जिसमें मुझे पता है कि मैं php पैकेज को बाहर कर सकता हूं या ठीक कर सकता हूं लेकिन मैं एक सामान्य विकल्प की तलाश कर रहा हूं जो किसी भी इंस्टॉल पर लागू होगा।

कुछ इस तरह:

yum install php-pecl-xxxx --no-updates

जवाबों:


10

अस्थायी समाधान:

-Cध्वज का उपयोग करें :

sudo yum install foobar -C

स्थायी समाधान:

इसे नियंत्रित करने के लिए metadata_expireअपने yum.conf में ध्वज का उपयोग करें।

संपादित करें /etc/yum.confऔर सेट करें

metadata_expire=15d

आप दिन, घंटे या मिनट में समय को कॉन्फ़िगर करने के लिए d, h या m का उपयोग कर सकते हैं ।

बोनस: यहाँ प्रलेखन है:

मेटाडाटा_एक्सपायर समय (सेकंड में) है जिसके बाद मेटाडेटा समाप्त हो जाएगा। ताकि अगर डाउनलोड किया गया वर्तमान मेटाडेटा इस सेकंड से कम हो तो yum रिपॉजिटरी के खिलाफ मेटाडेटा को अपडेट नहीं करेगा। यदि आप पाते हैं कि yum अपडेट पर जानकारी डाउनलोड नहीं कर रहा है तो आप जितनी बार इस विकल्प के मूल्य को कम करना चाहेंगे। आप विज्ञापन, एच या एम को क्रमशः जोड़कर दिन, घंटे या मिनट का उपयोग करने के लिए सेकंड का उपयोग करने के डिफ़ॉल्ट से भी बदल सकते हैं। डिफ़ॉल्ट 6 घंटे है, घंटे में एक बार चलने वाले यम-अपडेटड की प्रशंसा करने के लिए। "कभी नहीं" शब्द का उपयोग करना भी संभव है, जिसका अर्थ है कि मेटाडेटा कभी भी समाप्त नहीं होगा। ध्यान दें कि जब धातु की फाइल का उपयोग करना हो तो धातु का भण्डार के लिए मेटाडेटा से हमेशा नया होना चाहिए, सत्यापन के कारण, इसलिए यह टाइमआउट मेटलिंक फ़ाइल पर भी लागू होता है। यह भी ध्यान दें कि "कभी नहीं" "यम क्लीन एक्सपायर-कैश" को ओवरराइड नहीं करता है


0

अभी तक इस तरह के किसी भी विकल्प पर नहीं आए हैं। हालांकि अगर आप बिना अपग्रेड किए पैकेज को स्थापित करना चाहते हैं तो मैं उसी संस्करण का आरपीएम डाउनलोड करने की सलाह दूंगा और फिर इसे इंस्टॉल करूंगा।


0

में yum-utilsपैकेज के लिए एक उपकरण कहा जाता है yumdownloader। आप इसे बिना इंस्टॉल किए रिपोज से डाउनलोड करने के लिए उपयोग कर सकते हैं। सभी मानक स्विच जैसे --disablerepoलागू होते हैं। उस पर अधिक के लिए मैन पेज देखें ।

मुझे लगता है कि आप आरपीएम डाउनलोड कर सकते हैं और फिर वही करें जो आप सीधे आरपीएम का उपयोग करना चाहते हैं।


1
यह एक स्वचालित पैकेज इंस्टॉलेशन सिस्टम का एक हिस्सा है, समस्या यह है कि हम यम को 'नवीनतम स्थापित करने के लिए' और 'सब कुछ अपडेट करने की जरूरत नहीं है' चाहते हैं। हम वास्तव में यह चाहते हैं कि यह उस पैकेज का एक संस्करण स्थापित करे जो पहले से स्थापित है के साथ संगत है। मूल रूप से एक installonly या xxx -no-updates विकल्प स्थापित करें।
क्लिंट पुजारी

0

यदि पैकेज का पुराना संस्करण अभी भी आपके yum रिपॉजिटरी में है, तो आप बस चला सकते हैं yum install packagename-version-release.archऔर यह नवीनतम संस्करण को अपग्रेड करने का प्रयास किए बिना पुराने संस्करण को स्थापित करेगा। यदि आपके यम रेपो में कई संस्करण और आर्किटेक्चर हैं, तो आपको पूर्ण नाम, संस्करण, रिलीज़ और आर्क का उपयोग करना होगा। yum list available 'packagename*''Packagename' से शुरू होने वाले सभी पैकेजों की खोज करने के लिए आप वह सारी जानकारी प्राप्त कर सकते हैं । यदि आप अपने पैकेज को अपग्रेड करने में कामयाब रहे हैं और पुरानी रिलीज को डाउनग्रेड करना चाहते हैं, तो आप चला सकते हैं yum downgrade packagename1 packagename2। आपको उन सभी पैकेजों की सूची को शामिल करना होगा जिन्हें आप डाउनग्रेड करना चाहते हैं, क्योंकि इसमें बहुत अधिक निर्भरता शामिल होगी।

यदि पुराना रिलीज आपके yum रिपॉजिटरी में नहीं है, तो आप इसे पुराने पैकेज को कहीं से भी डाउनलोड करें और इसके साथ इंस्टॉल करें yum install /path/to/package.rpm, हालांकि मैं अविश्वसनीय स्रोतों से पैकेज स्थापित करने के खिलाफ सावधानी बरतूंगा।


लेकिन यह बहुत अधिक उपयोगी होगा यदि yumउपलब्ध नवीनतम संगत संस्करण को चुन सके।
फोर्सफेक नोव

यह उपयुक्त आवश्यकताओं को परिभाषित करने के लिए पैकर पर निर्भर है।
jsbillings 16

कभी-कभी आवश्यकताओं को एक पुराने पैकेज के साथ कवर किया जाता है, लेकिन यम केवल नवीनतम चुनने पर जोर देता है। उदाहरण के लिए। ऊपर वर्णित मामले में, यम के लिए यह संभव होना चाहिए कि सिस्टम php-5.4.11 के लिए लॉक किया गया संस्करण होने पर स्वचालित रूप से php-pecl-5.4.11 का चयन करें। यह स्वचालन के लिए एक समस्या हो सकती है।
फोर्सफासक

यदि पुराने संस्करण पर निर्भरताएं नहीं हैं, तो यम केवल नवीनतम संस्करण में अपडेट करेगा। उपरोक्त मामले में, pecl पैकेज द्वारा संस्करण की आवश्यकता कभी नहीं थी। यम आपके दिमाग को नहीं पढ़ सकता है और एक मनमाना संस्करण नहीं चुन सकता है जब तक कि आप इंगित नहीं करते हैं कि संस्करण को पीएलसी और पीएचपी संकुल के संस्करण में क्या चाहिए।
jsbillings

इस उदाहरण के लिए विशेष रूप से, बशर्ते कि php अपग्रेड करने योग्य नहीं है (या तो संस्करण-लॉक या रेपो पर कोई नया पैकेज उपलब्ध नहीं है), yum pecl के नवीनतम संस्करण का चयन कर सकता है जिसे php अपग्रेड की आवश्यकता नहीं होगी। यह पढ़ने में बिलकुल दिमाग नहीं है, मेरा मानना ​​है कि यह पहले से ही है। फिर से, यह स्वचालन के लिए एक समस्या है जब आपको अपने सिस्टम को आधा अपग्रेड किए बिना एक अतिरिक्त पैकेज स्थापित करने की आवश्यकता होती है और आपको अनुरोध को संभालने के लिए पर्याप्त स्मार्ट होने की आवश्यकता होती है, अर्थात, यदि कई संस्करण मौजूद हैं, तो पहले से स्थापित पैकेजों के साथ नवीनतम संगत चुनें। जो भी कारण के लिए उन्नत नहीं किया जा सकता है।
संदंश ५
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.