YUM का उपयोग करके किसी पैकेज की सामग्री को कैसे सूचीबद्ध करें?


320

मुझे पता है कि पैकेज की सामग्री को सूचीबद्ध करने के लिए आरपीएम का उपयोग कैसे करें ( rpm -qpil package.rpm)। हालाँकि, इसके लिए फ़ाइल सिस्टम पर .rpm फ़ाइल का स्थान जानना आवश्यक है। पैकेज प्रबंधक का उपयोग करने के लिए एक अधिक सुरुचिपूर्ण समाधान होगा, जो मेरे मामले में YUM है। इसे प्राप्त करने के लिए YUM का उपयोग कैसे किया जा सकता है?


8
बिना -pपरम ( rpm -ql packageName) के आपको आरपीएम फ़ाइल का स्थान जानने की आवश्यकता नहीं है। पैकेज का "सभी" पथ प्राप्त करना सबसे आसान तरीका है। कुछ उदाहरण आउटपुट के लिए मेरा उत्तर देखें ।
लेवी

दुर्भाग्य से यह केवल इंस्टॉल किए गए पैकेजों के साथ काम करता है
वॉलस्ट्रोप

जवाबों:


438

एक पैकेज होता है जिसे yum-utilsYUM पर बनाया जाता है और इसमें एक टूल होता है, repoqueryजो ऐसा करता है।

$ repoquery --help | grep -E "list\ files" 
  -l, --list            list files in this package/group

एक उदाहरण में संयुक्त:

$ repoquery -l time
/usr/bin/time
/usr/share/doc/time-1.7
/usr/share/doc/time-1.7/COPYING
/usr/share/doc/time-1.7/NEWS
/usr/share/doc/time-1.7/README
/usr/share/info/time.info.gz

आरपीएम v4.8.0, यम v3.2.29 और रेपोवेरी v0.0.11 के साथ कम से कम एक आरएच सिस्टम पर, repoquery -l rpmकुछ भी नहीं प्रिंट करता है।

यदि आप इस समस्या हो रही है, जोड़ने का प्रयास करें --installedझंडा: repoquery --installed -l rpm


DNF अपडेट करें:

का उपयोग करने के dnfबजाय yum-utils, निम्न आदेश का उपयोग:

$ dnf repoquery -l time
/usr/bin/time
/usr/share/doc/time-1.7
/usr/share/doc/time-1.7/COPYING
/usr/share/doc/time-1.7/NEWS
/usr/share/doc/time-1.7/README
/usr/share/info/time.info.gz

12
ध्यान दें कि यदि नामांकित पैकेज वास्तव में मौजूद नहीं है तो यह कमांड चुपचाप विफल हो जाएगी।
जोशुआ हॉब्लिट

17
इंस्टॉल किए गए पैकेजों के लिए तेजी से खोज करने के लिए, शामिल हैं - इंस्टॉल्ड विकल्प। उदा $ repoquery -lq --installed time
मोहसेनमे

pls नोट पैकेज का नाम केस-संवेदी है
पुटनिक

7
Yum, IMO की एक विशेषता के रूप में जोड़ा जाना चाहिए।
लाक्वेरीवग

1
जब आप उपयोग कर सकते हैं तो नया पैकेज क्यों स्थापित करें rpm -ql $PACKAGE_NAME?
इपपिर

159
rpm -ql [packageName]

उदाहरण

# rpm -ql php-fpm

/etc/php-fpm.conf
/etc/php-fpm.d
/etc/php-fpm.d/www.conf
/etc/sysconfig/php-fpm
...
/run/php-fpm
/usr/lib/systemd/system/php-fpm.service
/usr/sbin/php-fpm
/usr/share/doc/php-fpm-5.6.0
/usr/share/man/man8/php-fpm.8.gz
...
/var/lib/php/sessions
/var/log/php-fpm

यम-बर्तनों को स्थापित करने की आवश्यकता नहीं है, या आरपीएम फ़ाइल का स्थान जानने के लिए।


4
यह उन dpkg -Lसभी ya'd के बराबर प्रतीत होता है जो केवल फाइलों को सूचीबद्ध करने के लिए एक और पैकेज स्थापित नहीं करना चाहते हैं।
दिमित्री मिन्कोवस्की

5
@ दिदिमा: प्रश्न यम (= आरएचईएल आधारित सिस्टम) के लिए था जो rpmदेशी पैकेट प्रबंधक ( आर एड हैट पी एकेट एम एगर) के रूप में उपयोग करता है । यदि ओपी एक डेबियन / ubuntu / .. सिस्टम पर dpkgहोगा , तो जाने का रास्ता होगा, क्योंकि यह उपयुक्त बैकएंड है ।
लेवी

2
@Levit: बहुत यकीन है कि डिमाडिमा कहने की कोशिश कर रही है कि यह सवाल का कड़ाई से जवाब नहीं देता है - आप उपयोग नहीं कर रहे हैं, yumलेकिन rpmइसका प्रमुख अर्थ है कि पैकेज स्थापित करने की आवश्यकता है (जो ओपी ने स्पष्ट रूप से नहीं कहा है उसका परिदृश्य)। वह केवल आरपीएम == dpkg / yum == उपयुक्त समानांतर तुलना कर रहा था, यह समझाने के लिए कि कोई डेबियन-आधारित पैकेजिंग से परिचित था और आरएच-आधारित पैकेजिंग नहीं।
१।

3
^ 1 किसी कारण से, यह काम करता है और स्वीकृत उत्तर कुछ भी नहीं देता है
इज़्काता

2
ऐसा लगता है कि स्थानीय और दूरस्थ फ़ाइलों को क्रमशः सूचीबद्ध करने के लिए ( और पैकेज से) कोई yumसमकक्ष नहीं है। rpm -qlrepoquery -lyum-utils


31

मुझे नहीं लगता कि आप yum का उपयोग करके किसी पैकेज की सामग्री को सूचीबद्ध कर सकते हैं, लेकिन यदि आपके पास अपने स्थानीय सिस्टम पर .rpm फ़ाइल है (जैसा कि सभी स्थापित पैकेजों के लिए सबसे अधिक संभावना होगी), तो आप सूचीबद्ध करने के लिए rpm कमांड का उपयोग कर सकते हैं। उस पैकेज की सामग्री जैसे:

rpm -qlp /path/to/fileToList.rpm

यदि आपके पास पैकेज फ़ाइल (.rpm) नहीं है, लेकिन आपके पास पैकेज स्थापित है, तो यह प्रयास करें:

rpm -ql packageName

24
अगर आपके पास पैकेज फ़ाइल (.rpm) नहीं है, लेकिन आपके पास पैकेज स्थापित है, तो rpm -ql packageName आज़माएँ
Jared Updike

1
यदि आपके पास पैकेज नहीं है और यह स्थापित नहीं है, तो आप पैकेज के यूआरएल को पा सकते हैं youdownload --urls
कामे

वह होना चाहिएyumdownloader --urls
इवगेनी सर्गेव

3

यहाँ कई अच्छे उत्तर हैं, इसलिए मुझे एक भयानक प्रदान करें:

: you can type in anything below, doesnt have to match anything

yum whatprovides "me with a life"

: result of the above (some liberties taken with spacing):

Loaded plugins: fastestmirror
base | 3.6 kB 00:00 
extras | 3.4 kB 00:00 
updates | 3.4 kB 00:00 
(1/4): extras/7/x86_64/primary_db | 166 kB 00:00 
(2/4): base/7/x86_64/group_gz | 155 kB 00:00 
(3/4): updates/7/x86_64/primary_db | 9.1 MB 00:04 
(4/4): base/7/x86_64/primary_db | 5.3 MB 00:05 
Determining fastest mirrors
 * base: mirrors.xmission.com
 * extras: mirrors.xmission.com
 * updates: mirrors.xmission.com
base/7/x86_64/filelists_db | 6.2 MB 00:02 
extras/7/x86_64/filelists_db | 468 kB 00:00 
updates/7/x86_64/filelists_db | 5.3 MB 00:01 
No matches found

: the key result above is that "primary_db" files were downloaded

: filelists are downloaded EVEN IF you have keepcache=0 in your yum.conf

: note you can limit this to "primary_db.sqlite" if you really want

find /var/cache/yum -name '*.sqlite'

: if you download/install a new repo, run the exact same command again
: to get the databases for the new repo

: if you know sqlite you can stop reading here

: if not heres a sample command to dump the contents

echo 'SELECT packages.name, GROUP_CONCAT(files.name, ", ") AS files FROM files JOIN packages ON (files.pkgKey = packages.pkgKey) GROUP BY packages.name LIMIT 10;' | sqlite3 -line /var/cache/yum/x86_64/7/base/gen/primary_db.sqlite 

: remove "LIMIT 10" above for the whole list

: format chosen for proof-of-concept purposes, probably can be improved a lot

0

यम के पास अपना पैकेज प्रकार नहीं है। यम आरपीएम का प्रबंधन और संचालन करता है। तो, आप उपलब्ध RPM को सूचीबद्ध करने के लिए yum का उपयोग कर सकते हैं और फिर उस पैकेज की सामग्री को देखने के लिए rpm -qlp कमांड चला सकते हैं।


0

वर्तमान reopqueryमें एकीकृत है , dnfऔर yumइसलिए टाइपिंग:

dnf repoquery -l <pkg-name>

दूरस्थ रिपॉजिटरी से पैकेज सामग्री को सूचीबद्ध करेगा (यहां तक ​​कि उन पैकेजों के लिए जो अभी तक स्थापित नहीं हैं)

एक अलग dnf-utilsया yum-utilsपैकेज स्थापित करने का मतलब अब कार्यक्षमता के लिए आवश्यक नहीं है क्योंकि इसे अब मूल रूप से समर्थित किया जा रहा है।


लिस्टिंग के लिए स्थापित या स्थानीय ( *.rpmफ़ाइलें) संकुल की सामग्री नहीं हैrpm -ql

मुझे नहीं लगता कि यह yumओआरजी dnf( repoqueryसबकुंड नहीं ) के साथ संभव है

अगर मैं गलत हूं कृपया मुझे सही

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.