मैं उन सभी RPM पैकेजों की सूची कैसे प्राप्त कर सकता हूं जो किसी विशेष रेपो (उदाहरण के लिए, "एपेल)) से मेरे सिस्टम पर स्थापित किए गए हैं?
मैं उन सभी RPM पैकेजों की सूची कैसे प्राप्त कर सकता हूं जो किसी विशेष रेपो (उदाहरण के लिए, "एपेल)) से मेरे सिस्टम पर स्थापित किए गए हैं?
जवाबों:
yum list installed | grep @epel
dnf list installed | grep @epel
RHEL6 के अनुसार, जैसा कि इस स्टैकओवरफ़्लो उत्तर में सुझाया गया है , इसके साथ ऐसा करने का एक अधिक गहन तरीका है yumdb
:
yumdb search from_repo REPOID*
रिपॉइड वाइल्ड कार्ड लेता है।
यदि हम आउटपुट को धोखा देने और पाइप करने जा रहे हैं, तो हम सुंदर प्रिंट प्रभाव भी प्राप्त कर सकते हैं। यहाँ एक का उपयोग कर रहा हैawk
yumdb search from_repo REPOID* |awk -F"\n" '{ RS=""; print $1 }'
का उपयोग कर egrep
याgrep -e
yumdb search from_repo REPOID* |egrep -v '(from_repo|^$)'
एक निर्दिष्ट भंडार में सभी उपलब्ध पैकेजों को सूचीबद्ध करने के लिए , यह करें:
repoquery -a --repoid=REPONAME
repoquery -qa --repoid=REPONAME
repoquery -a --repoid=REPONAME
क्योंकि मैन पेज -q
विकल्प के अनुसार rpmquery संगतता के लिए है, कुछ भी नहीं करता है।
-qa
वास्तव में विफल रहता है। मैं टिप्पणी को पहले से हटाए जाने के कारण नहीं बढ़ा सकता :( मैं यह प्रतिबिंबित करने के लिए उत्तर अपडेट कर रहा हूं।
dnf repo-pkgs <repoid> list installed
ऊपर दिए गए कमांड, डीएनएफ का उपयोग करने वाले पैकेजों को सूचीबद्ध करने के लिए करता है <repoid>
। नोट repo-pkgs
सिर्फ एक उपनाम है repository-packages
।
से man
पृष्ठों:
man dnf | grep "repository-packages.*list.*installed" -A 1
आगे की पढाई:
man dnf
ग्रीम्पिंग यम का उत्पादन सबसे स्पष्ट तरीका है:
yum list installed | grep @epel
हालाँकि, आप अतिरिक्त पैकेज गुण प्रदर्शित नहीं कर सकते हैं और स्क्रिप्ट के साथ पार्स करना मुश्किल है। उपकरण repoquery
पैकेज से yum-utils
उपकरण है, लेकिन यह डिफ़ॉल्ट रूप से स्थापित नहीं है।
repoquery -a --installed --qf "%{ui_from_repo} %{name}" | grep '^@epel'
और अधिक जटिल उदाहरण:
repoquery -a --installed --qf "%-20{ui_from_repo} %-30{name} %-7{arch} %{epoch}:%-12{version} %-4{release}" | grep '^@epel'
yum repo-pkgs <repoid> list installed
के रूप yumdb search from_repo <repoid>
में एक ही जानकारी को पुनः प्राप्त करने के लिए इस्तेमाल किया जा सकता है , लेकिन एक अलग प्रारूप में।
# yum help repo-pkgs
repo-pkgs <repoid> <list|info|install|remove|upgrade|reinstall*|remove-or-*> [pkg(s)]
Treat a repo. as a group of packages, so we can install/remove all of them
aliases: repo-packages, repository-pkgs, repository-packages
नमूना epel
आउटपुट:
# yumdb search from_repo epel
htop-2.2.0-1.el7.x86_64
from_repo = epel
supervisor-3.1.4-1.el7.noarch
from_repo = epel
# yum repo-pkgs epel list installed
Installed Packages
htop.x86_64 2.2.0-1.el7 @epel
supervisor.noarch 3.1.4-1.el7 @epel
आप Vendor
स्थापित आरपीएम के हेडर की जांच कर सकते हैं ।
यह उदाहरण वीडियोलैन भंडार से सभी पैकेजों को सूचीबद्ध करता है:
rpm -q -a --qf "%{Name}:%{Vendor}\n" \
| grep -F ":VideoLAN Project (http://www.videolan.org)"
जाहिर है, आपको यह निर्धारित करने की आवश्यकता है कि क्या Vendor
आपकी रिपॉजिटरी का हेडर विभिन्न रिपॉजिटरी के बीच अद्वितीय है।
उन लोगों के लिए जो केवल लापता रिपोजिटरी ढूंढना चाहते हैं:
yum list installed | awk '{print $3}' | sort | uniq
आपको उन सभी रिपॉजिटरी को वापस करना चाहिए जहां आपके पास पैकेज स्थापित हैं।