2009-03-11 7 views
28

उम्मीद है कि प्रश्न का संक्षिप्त संस्करण: यदि मैं एक मशीन पर हूं जिसमें एक विशेष पैकेज स्थापित है, तो क्या कोई यम कमांड है जो मुझे बताएगा कि इसके किस कॉन्फ़िगर किए गए रिपॉजिटरीज ने उस पैकेज को प्रदान किया है? (या वैकल्पिक रूप से, कौन सा भंडार अभी तक स्थापित पैकेज प्रदान करेगा।)क्या आप मुझे बता सकते हैं कि मेरे कौन से भंडार एक विशेष पैकेज प्रदान करते हैं?

कुछ संदर्भों की आवश्यकता होने पर पृष्ठभूमि: हमारे पास यम भंडारों का एक भूलभुलैया है जिसे हम आकर्षित करते हैं। मेरे पास एक मशीन है जिसमें एक विशेष आरपीएम पैकेज स्थापित है, और एक और मशीन जो रिपॉजिटरीज़ की स्पष्ट रूप से अपर्याप्त भूलभुलैया है, और इसलिए मैं उस मशीन पर इच्छित पैकेज को स्थापित करने में सक्षम नहीं हूं। मुझे नई मशीन में न्यूनतम आवश्यक भंडार जोड़ने की जरूरत है। मैं सिर्फ एक मशीन से दूसरी मशीन में भंडारों को गोली मार नहीं सकता। और बस बाहर जाकर आरपीएम को पकड़ना एक विकल्प नहीं है क्योंकि मुझे इसकी पुनरुत्पादन की आवश्यकता है।

उत्तर

30
yum list packagename 

यह दिखाएगा कि पैकेज किस आउटपुट के आउटपुट के तीसरे कॉलम में है।

पहले से ही स्थापित संकुल के लिए, यह काम नहीं करेगा, क्योंकि तीसरा कॉलम सिर्फ "स्थापित" दिखाता है। उस स्थिति में आप उदाहरण कर सकते हैं "rpm -qi packagename", आमतौर पर विक्रेता, पैकेजर और बिल्ड होस्ट टैग्स यह संकेत देगा कि पैकेज किस भंडार से संबंधित है। पैकेज संस्करण संख्या में कुछ रेपो प्रतीक को जोड़ने के लिए भी यह काफी आम है।

+0

परमाणु रेपो उपयोगकर्ताओं: विक्रेता परमाणु RPMs के लिए खाली है, लेकिन अगर "होस्ट का निर्माण" "archelon" है, यह है परमाणु से। – johnorourke

23
repoquery -i {packagename} 

यह आपको वास्तविक रेपो नाम बना देगा जो यम रिटर्न के अनुपयुक्त "स्थापित" बना देगा। मरम्मत yum-utils द्वारा प्रदान की जाती है।

1

एक भी पैकेज के लिए, आप इस

PACKAGE=ruby-enterprise 
repoquery --qf "%{repoid}" $PACKAGE 

साथ पैकेज आप के बारे में परवाह के नाम के साथ $ पैकेज बदलें पा सकते हैं।

आप सभी संकुल कि

REPO=ruby-enterprise-opt 
repoquery --repoid=$REPO -a --qf "%{name}" | sort > repo_packages 
rpm -qa --qf "%{name}\n" | sort > installed_packages 
comm -1 -2 repo_packages installed_packages 

के साथ एक विशिष्ट भंडार से आया भंडार आप ध्यान की आईडी के साथ $ रेपो बदलें पा सकते हैं; आप yum repolist के साथ अपने सभी सक्षम भंडारों के आईडी देख सकते हैं।

10

आप yum -v search का उपयोग कर सकते हैं जो आपको रेपो के साथ पैकेज दिखाएगा जिसमें यह मौजूद है। यदि आप --showduplicates भी जोड़ते हैं तो आप उस पैकेज के सभी संस्करण देखेंगे।

क्रेडिट करने के लिए: http://www.spinics.net/linux/fedora/yum/msg11975.html

0
yum reinstall [package_name] 

फिर जब इस बात की पुष्टि करने के लिए कहा, तो आप एन चयन कर सकते हैं आपके सिस्टम में परिवर्तन नहीं करने के लिए: एक centos पर

नमूना उत्पादन:

Resolving Dependencies 
--> Running transaction check 
---> Package mc.x86_64 1:4.6.1a-35.el5 set to be updated 
--> Finished Dependency Resolution 

Dependencies Resolved 

============================================================================================================================================== 
Package      Arch        Version         Repository      Size 
============================================================================================================================================== 
Reinstalling: 
mc       x86_64       1:4.6.1a-35.el5       base       2.1 M 

Transaction Summary 
============================================================================================================================================== 
Remove  0 Package(s) 
Reinstall  1 Package(s) 
Downgrade  0 Package(s) 

Total download size: 2.1 M 
Is this ok [y/N]: 
संबंधित मुद्दे

 संबंधित मुद्दे