सवाल कैसे पता चलेगा कि कौन सा yum भंडार एक पैकेज स्थापित किया गया है?


यम द्वारा पैकेज स्थापित करने के बाद (एकाधिक रिपॉजिटरी कॉन्फ़िगर किए गए के साथ), मैं यह किस प्रकार से भंडार स्थापित कर सकता हूं?

अगर मैं दौड़ता हूं yum info package-name (या yum list package-name), मैं केवल देख सकता हूं कि पैकेज "स्थापित" है।


134
2017-09-03 15:15


मूल


महान सवाल! मैंने यम-यूटिल स्थापित किए और रिपोक्वायरी नामक एक यूटिल की कोशिश की, लेकिन कोई भाग्य नहीं। - Sean Staats
यह भी देखें serverfault.com/questions/90409/... :) - warren
@warren आपका लिंक उपयोगी नहीं है क्योंकि आपका लिंक "रेपो एक आरपीएम संग्रहीत है" के बारे में एक सवाल है, लेकिन यह सवाल पूछता है "रेपो एक स्थापित आरपीएम है"। अलग-अलग प्रश्न - Trevor Boyd Smith
यदि आप करने के लिए उपयोग किया जाता है rpm -qa|grep NAME तब आप कर सकते हो करना yum list installed|grep NAME यह जानने के लिए कि आरपीएम क्या रेपो है। - Trevor Boyd Smith
@TrevorBoydSmith - 7 साल पहले, यह करीब था। आज यह है फिर भी समान। कभी नहीं कहा था कि यह था वही। बस यह संबंधित था। - warren


जवाब:


यम-यूटिल स्थापित करने के साथ, रिपोक्वेरी आपके द्वारा प्राप्त की जाने वाली जानकारी प्रदान करेगी (यहां 'एपेल' भंडार है)।

└─[$]> repoquery -i cherokee

Name        : cherokee
Version     : 0.99.49
Release     : 1.el5
Architecture: i386
Size        : 8495964
Packager    : Fedora Project
Group       : Applications/Internet
URL         : http://www.cherokee-project.com/
Repository  : epel
Summary     : Flexible and Fast Webserver
Description :
Cherokee is a very fast, flexible and easy to configure Web Server. It supports
the widespread technologies nowadays: FastCGI, SCGI, PHP, CGI, TLS and SSL
encrypted connections, Virtual hosts, Authentication, on the fly encoding,
Apache compatible log files, and much more.

75
2018-06-21 19:16



रिपोक्रीरी सही काम नहीं कर रहा है, तो मुझे अलग पैकेज संस्करण मिलते हैं yum info package_name, यह yum के समान क्रम में भंडारों से पूछताछ प्रतीत नहीं होता है। - Mike Miller
कुछ सर्वरों पर यहाँ वही। yum info package_name स्पष्ट रूप से repoquery से अधिक परिणाम देता है। यही कारण है कि स्टैक एक्सचेंज वोटों में लॉक नहीं होना चाहिए। - reflexiv
मैंने Xiong Chiamiov का जवाब सही नहीं पाया। repoquery -i $pkg रेपो देता है जिसमें से एक $pkg उपलब्ध है, रेपो से नहीं $pkg स्थापित किया गया था। मैंने वह आदेश दिया और rpm -qi $pkg और विभिन्न संस्करण संख्या मिली। rpm इसके परिणामस्वरूप पहले संस्करण संख्या में परिणाम हुआ repoquery।
यह संभव है कि आपकी स्थानीय प्रति पुरानी हो, या यह अतिरिक्त आदेशों के साथ yum (उदा। --use-mirror)। मुझे नहीं लगता कि यह संभव है हमेशा सही जवाब प्राप्त करें। - Xiong Chiamiov


यम का क्या संस्करण?

वर्तमान संस्करण पर यदि स्थापित पैकेज एक ही संस्करण है जो सबसे हालिया उपलब्ध है तो रेपो इसे दिखाया गया था।

$ yum info irssi
Installed Packages
Name       : irssi
Arch       : i586
Version    : 0.8.14
Release    : 1.fc11
Size       : 2.3 M
Repo       : installed
From repo  : updates
Summary    : Modular text mode IRC client with Perl scripting
URL        : http://irssi.org/
License    : GPLv2+
Description: Irssi is a modular IRC client with Perl scripting. Only text-mode
           : frontend is currently supported. The GTK/GNOME frontend is no
           : longer being maintained.

$ yum --version
3.2.23

यदि कोई नया पैकेज उपलब्ध है, तो इसे अलग-अलग दिखाया जाएगा, नए संस्करण के साथ यह रेपो दिखा रहा है।


37
2017-09-03 16:25



मैं Cento 5.3 पर yum 3.2.19 का उपयोग कर रहा हूं और "रेपो से" पंक्ति मौजूद नहीं है। - lg.
हाँ ... मैं इसे 3.2.21 पर परीक्षण कर रहा था, जिसमें उस जानकारी को कहीं भी नहीं है। जब मैंने अपने बॉक्स पर 3.2.23 किया, तो यह काम किया। - Alex
अब यह सबसे अच्छा समाधान है, लेकिन आरएचईएल / सेंटोस 5.3 के लिए लागू नहीं है। मैं इस समाधान को स्वीकार करता हूं, लेकिन अगर मैं आरएचईएल / सेंटोस 5.3 के लिए भी लागू होगा तो मैं एक और जवाब चुनने के लिए तैयार हूं। - lg.
यह CentOS 5.5 में कोई भी नहीं है। - Mike Miller
"रेप से" सेंटोस 5.8 में भी उपलब्ध नहीं है - sepehr


देर से आने वाले रास्ते पर आ रहा है (कम से कम फेडोरा 15 पर) कोई भी इसी तरह के प्रश्नों के लिए yumdb का उपयोग कर सकता है:

yumdb info 'python*'

और मुझे वास्तव में दिए गए रेपो से संकुल सूचीबद्ध करने के लिए क्या चाहिए:

yumdb search from_repo 'my-*-repo'

18
2017-10-26 09:01



यह फेडोरा 14 पर भी काम करता है - lg.
आरएचईएल 6.2 पर काम करता है - pixelbeat


यदि सब कुछ विफल हो जाता है, तो आप मैन्युअल रूप से yumdb का निरीक्षण कर सकते हैं। यह में स्थित है /var/lib/yum/yumdb और प्रत्येक स्थापित पैकेज पर विस्तृत जानकारी है। आप विशेष रूप से रुचि रखते हैं from_repo। उदाहरण के लिए, के लिए bind-utils पैकेज:

# for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i`; done
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_data: 39f7840f93d3d76825a9e8da79cfe0366f7fad68f018a273477aee62cccfa3f4
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_type: sha256
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/command_line: install bind-utils
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo: updates
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_revision: 1397654451
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_timestamp: 1397654759
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/installed_by: 0
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/reason: user
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/releasever: 6

केवल वही जानकारी प्राप्त करने के लिए जो आप चाहते हैं:

# cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo
updates

बाद के संस्करण और भी डेटा प्रदान करेंगे; उदाहरण के लिए ईएल 7 में सटीक दर्पण और यूआरएल जिसमें से पैकेज डाउनलोड किया गया था, यहां संग्रहीत किया जाता है।


8
2018-05-25 04:19



+1। लेकिन ऐसा कुछ भी बेहतर है: for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i` | grep -oP 'from_repo:\ \K.*'; done, जो उपर्युक्त उदाहरण में लौटाता है: updates - और अधिक पठनीय! - Greg Dubicki
@GregDubicki कमांड का बिंदु क्या हो रहा है और चीजों को कैसे संग्रहीत किया जाता है इसके संदर्भ में अधिक दिखाया गया था। यह स्पष्ट रूप से ऐसा करने में असफल रहा: इसकी कोई आवश्यकता नहीं है grep यहां कुछ भी, और आप लूप भी छोड़ सकते हैं। एक बहुत ही सरल cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo आपको जो चाहिए वह यह है। - Michael Hampton♦


rpm -qi packagename

आपको विक्रेता और पैकेजर बताएगा


6
2018-02-09 14:48





अगर पैकेज हाल ही में स्थापित किया गया था, तो आप / var / cache / yum में देख सकते हैं।

उस निर्देशिका में, प्रत्येक रेपो के लिए एक निर्देशिका है, और उसमें एक पैकेज निर्देशिका है। तो, आप कुछ ऐसा करेंगे:

find /var/cache/yum -name [package-name]*

हालांकि, आपके /etc/yum.conf फ़ाइल में कैश को सक्षम होना आवश्यक है:

cachedir=/var/cache/yum
keepcache=1

ध्यान दें कि ए yum clean [packages|all] कैश निर्देशिका को साफ़ कर देगा।

यदि कैश निर्देशिका खाली है, तो एक वैकल्पिक तरीका है। जानकारी जो पढ़ी जाती है yum info [package] /var/cache/yum/[repo]/primary.xml.gz से आता है

आप दर्ज करके फ़ाइल देख सकते हैं:

gunzip -d -c /var/cache/yum/[repo]/primary.xml.gz | grep '<name>[package]'

हालांकि, मशीनों पर जहां yum info [package] "repo:" से प्रदर्शित नहीं होता है, जैसा कि 'theotherreceive' द्वारा इंगित किया गया है, ऐसा इसलिए है क्योंकि यह फ़ाइल primary.xml में नहीं है, इसलिए उस जानकारी को पुनर्प्राप्त करने का कोई तरीका नहीं होगा। इसलिए, यदि पैकेज दो या अधिक प्राथमिक.एक्सएमएल फाइलों में है, तो आपको सिस्टम पर रेपो प्राथमिकता निर्धारित करनी होगी।


4
2017-09-03 16:36



यह समाधान शायद एक विकल्प (मैं इसे वोट देता हूं), लेकिन मैं एक निश्चित उत्तर की तलाश में हूं। - lg.


रेपो एपेल से क्या स्थापित किया गया है यह देखने के लिए: (Centos 5.5 के तहत काम करना चाहिए) नोट, अगर आपके पास कोई रेपो नामित एपेल नहीं है, तो यह इंस्टॉल की गई हर चीज को थूक देगा।

repoquery --repoid = epel -a | xargs yum सूची स्थापित


4
2018-04-07 21:20



यह तब तक काम करता प्रतीत होता है जब तक भंडार में कोई अद्यतन पैकेज नहीं है। तो आपको इसका उपयोग करने से पहले यम अपडेट चलाने की जरूरत है। - codewaggle


के आधार पर और जवाब Swoogan
रेडहाट और सेंटोस पर कोई भी कर सकता है

sudo grep -ir PACKAGE_NAME /var/cache/yum/

परिणाम कुछ दिखना चाहिए

Binary file /var/cache/yum/REPOSITORY_NAME/primary.xml.gz.sqlite matches

कहा पे repository_name  वह भंडार है जहां आपका पैकेज पाया जा सकता है, और शायद यह सूची में पहले व्यक्ति से स्थापित किया गया था (यम रिपोलिस्ट देखें)


3
2018-05-30 00:19





क्या वह जानकारी कहीं भी कब्जा कर लिया गया है? पैकेज में वह जानकारी नहीं है, और पैकेज को पालने के बाद यम परवाह नहीं है। आप शायद यह पता लगाकर एक साथ टुकड़े कर सकते हैं कि पैकेज में कौन से रेपो हैं और फिर यह निर्धारित करें कि किसके पास प्राथमिकता है।


1
2017-09-03 16:19



यह समाधान शायद एक विकल्प (मैं इसे वोट देता हूं), लेकिन केवल हाल ही में स्थापित पैकेज के लिए, क्योंकि मैं भंडार और उनकी प्राथमिकता को बदल सकता हूं। - lg.


कोई अच्छा समाधान नहीं है, लेकिन मैंने पाया कि यम सूची उपलब्ध आपको दिखाएगी कि प्रत्येक पैकेज का सबसे अद्यतित संस्करण उपलब्ध है, उदाहरण के लिए:

यम सूची उपलब्ध है grep gstreamer

PackageKit-gstreamer-plugin.x86_64 0.3.16-1.fc10          updates               

bluez-gstreamer.i386 4.30-2.fc10 अद्यतन
gstreamer.i386 0.10.21-2.fc10 fedora
gstreamer-devel.i386 0.10.21-2.fc10 fedora
gstreamer-devel.x86_64 0.10.21-2.fc10 fedora
gstreamer-plugins-bad-devel.i386 0.10.9-1.fc10 rpmfusion-free
gstreamer-plugins-bad-devel.x86_64 0.10.9-1.fc10 rpmfusion-free

तो आप अपने पैकेज पर एक यम सूची उपलब्ध कर सकते हैं, फिर स्थापित किए गए यम सूची का उपयोग करके अपने स्थापित संस्करण की तुलना करें, और संस्करणों से मेल खाने के लिए यह एक अच्छा विचार है कि यह रेपो से आया था।


1
2017-09-03 16:37



यह सच है केवल पैकेज अभी तक स्थापित नहीं है। - lg.
हालांकि यह ओपीएस सवाल का बिल्कुल जवाब नहीं देता है, यह मेरे लिए बहुत उपयोगी था क्योंकि यह केवल यूम और कोई अन्य यूटिल के साथ Centoss 5.5 में काम करता है, और आप यह कर सकते हैं: 1. पैकेज को अनइंस्टॉल करें, फिर यह देखने के लिए क्वेरी करें कि रिपो फिर से इंस्टॉल क्यों है , या 2. पैकेज के बिना एक अलग मशीन पर क्वेरी स्थापित। - lreeder