कैश को साफ किए बिना स्थानीय रेपो को अपडेट देखने के लिए मुझे यम कैसे मिलेगा?


19

मैंने एक स्थानीय यम भंडार स्थापित किया है जिसका उपयोग मैं परीक्षण बिल्ड स्थापित करने के लिए करता हूं। परीक्षण के प्रयोजनों के लिए, मेरे पैकेजों का संस्करण है <svn version number>.<date>.<time>(उदाहरण के लिए)12345.20110908.150404

मुसीबत यह है कि एक बार जब मैं एक नया RPM बनाता हूं, तो उसे रिपॉजिटरी डायरेक्टरी में कॉपी createrepo $REPO_DIRकरता हूं और रन करता है, yum नए RPM को उपलब्ध नहीं होता है।

$ cd $REPO_DIR
$ ls -1
repodata
package-12345.20110908.150404-1.x86_64.rpm
package-12345.20110908.174329-1.x86_64.rpm

$ createrepo .
# ...snip...

$ rpm -q package
package-12345.20110908.150404-1.x86_64

$ yum list --showduplicates package
Installed Packages
package.x86_64    12345.20110908.150404-1    @repo
Available Packages
package.x86_64    12345.20110908.150404-1    repo

मैं अपडेट देख सकता हूं और अगर मैं चलाता हूं तो उन्हें पकड़ सकता हूं yum clean allऔर फिर मेटाडेटा को फिर से ला सकता हूं, लेकिन मुझे लगता है कि इसका मतलब है कि मुझे रेपो से कुछ और करने की जरूरत है, क्योंकि मुझे ऐसा करने के लिए अन्य यम रिपो के लिए नहीं है।

मुझे अपना स्थानीय रिपॉजिटरी सेट करने की आवश्यकता कैसे है ताकि मुझे yum updateअपने यम कैश को साफ किए बिना केवल क्लाइंट से चलाने की आवश्यकता हो ?

जवाबों:


24

आप "yum clean expire-cache" चला सकते हैं जो कि yum को repos की जांच करने के लिए बताने के लिए अधिक कुशल तरीका है। ... स्थानीय रेपो के लिए मेटाडेटा_एक्सपायर मूल्य को बदलना दूसरी बात होगी। (देखें आदमी yum.conf)।


क्या केवल विशिष्ट रिपॉजिटरी को समाप्त करने का एक तरीका है?
मिरोस्लाव

1
ऐसा करने का एकमात्र आसान तरीका है --disablerepo = * --enablerepo = myrepo, otherrepo ... यद्यपि आप एक ऐसा उपनाम बना सकते हैं यदि यह कुछ ऐसा है जो आप बहुत कुछ करेंगे।
जेम्स एंटिल

11

यम ग्राहकों पर /etc/yum.conf में निम्नलिखित पंक्ति जोड़ने का प्रयास करें:

metadata_expire = 1m

निम्न आदेश आपको अधिक जानकारी दिखाता है:

आदमी yum.conf

FYI करें। CentOS 5 में पैरामीटर पर टिप्पणी की गई है। सेंटोस 6.2 में मान के लिए 90 मी है।


यह कुछ हद तक पुराना है, लेकिन मैं सिर्फ इस में भाग गया। आप /etc/yum.repos.d/my.repo फ़ाइल को संपादित करके एकल रिपॉजिटरी के लिए यह मान सेट कर सकते हैं।
jwm

3

yum clean metadata केवल कैश्ड नामों को साफ करता है और इस तरह, जिसके बाद यम उपलब्ध होने के अपने विचार को पुनः लोड करता है।


0

बस एक ही मुद्दा था, कोशिश:

यम सब साफ


1
कृपया प्रश्न को ध्यान से पढ़ें। मेरा मानना ​​है कि वह एक वैकल्पिक विधि की तलाश कर रहे थे जहां उन्हें कैश को साफ करने की आवश्यकता नहीं थी।
slm

भगवान तुम बहुत सही हो: |
जॉबवेट

0

yum's --enablerepo = localrpmrepo आपके बाद का विकल्प है। इसलिए

yum --enablerepo=localrpmrepo clean metadata

अपने रेपो नाम के साथ localrpmrepo बदलें


नहीं, इस मामले में, समस्या निश्चित रूप से है कि यह सोचता है कि कैश अभी भी मान्य है और अपडेट के लिए जाँच नहीं करता है।
फाल्कन मोमोट

मैं इस कथन का उपयोग करके केवल एक रिपॉजिटरी को अपडेट करने में सक्षम था और दूसरा yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q:। मैं बस एक बश फ़ंक्शन करूँगा और इसके साथ किया जाऊंगा!
bgStack15 12
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.