YUM kullanarak bir paketin içeriği nasıl listelenir?


320

Bir paket ( rpm -qpil package.rpm) içeriğini listelemek için rpm nasıl kullanılacağını biliyorum . Ancak bu, .rpm dosyasının dosya sistemindeki yerini bilmenizi gerektirir. Benim durumumda YUM olan paket yöneticisini kullanmak daha zarif bir çözüm olurdu. YUM bunu başarmak için nasıl kullanılabilir?


8
-pParam ( rpm -ql packageName) olmadan rpm dosyasının yerini bilmenize gerek yoktur. Bir paketin "tüm" yolunu almanın en kolay yolu. Bazı örnek çıktılar için cevabım bakın .
Levite

Ne yazık ki bu sadece kurulu paketlerle çalışır
WallStProg

Yanıtlar:


438

yum-utilsYUM üzerine kurulmuş ve repoquerybunu yapabilen bir araç içeren bir paket var .

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

Bir örnekte birleştirildi:

$ 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

Rpm v4.8.0, yum v3.2.29 ve repoquery v0.0.11 ile en az bir RH sisteminde repoquery -l rpmhiçbir şey yazdırılmaz.

Bu sorunla karşılaşıyorsanız, eklemeyi deneyin --installedbayrağı: repoquery --installed -l rpm.


DNF Güncelleme:

Bunun dnfyerine yum-utilskullanmak için aşağıdaki komutu kullanın:

$ 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
Belirtilen paket gerçekten yoksa bu komutun sessizce başarısız olacağını unutmayın.
Joshua Hoblitt

17
Yüklü paketleri daha hızlı aramak için --kurulmuş seçeneğini ekleyin. örn $ repoquery -lq --installed time.
Mohsenme

pls not paket adı büyük / küçük harf duyarlı
Putnik

7
Yum, IMO'nun bir özelliği olarak eklenmelidir.
Lqueryvg

1
Kullanabileceğiniz zaman neden yeni bir paket yüklemelisiniz rpm -ql $PACKAGE_NAME?
isapir

159
rpm -ql [packageName]

Misal

# 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

Yum-utils yüklemenize veya rpm dosyasının yerini bilmenize gerek yoktur.


4
Bu, dpkg -Lsadece dosyaları listelemek için başka bir paket yüklemek istemeyen herkes için eşdeğer gibi görünüyor .
Dmitry Minkovsky

5
@dimadima: Soru, yerel paket yöneticisi ( R ed Hat P acket M anager ) olarak kullanılan yum (= RHEL tabanlı sistemler) içindi . OP bir debian / ubuntu / .. sisteminde olacaksa, apt için arka uç olduğu için gitmek için bir yol olurdu . rpmdpkg
Levite

2
@Levit: Dimadima'nın söylemeye çalıştığı şeyden eminim, bu soruya kesinlikle cevap vermiyor - kullanmıyorsunuz, yumancak rpmpaketin yüklenmesi gereken önemli bir imaya sahip (OP'nin açıkça söylemediği senaryosu). Sadece rpm == dpkg / yum == apt paralel karşılaştırmasını, birisinin RH tabanlı değil Debian bazlı ambalajı bilmesi durumunda bunu açıklamak için yapıyordu.
tne

3
^ 1 çünkü bir nedenden dolayı, bu işe yarıyor ve kabul edilen cevap hiçbir şey
döndürmüyor

2
Yerel ve uzak dosyaları listelemek için sırasıyla ve ( paketten) komutlarına yumeşdeğer görünmemektedir . rpm -qlrepoquery -lyum-utils


31

Yum kullanarak bir paketin içeriğini listeleyebileceğinizi sanmıyorum, ancak yerel sisteminizde .rpm dosyası varsa (büyük olasılıkla tüm kurulu paketler için olduğu gibi), listelemek için rpm komutunu kullanabilirsiniz bu paketin içeriği şöyle:

rpm -qlp /path/to/fileToList.rpm

Paket dosyanız (.rpm) yoksa, ancak paketiniz yüklüyse şunu deneyin:

rpm -ql packageName

24
paket dosyanız (.rpm) yoksa, ancak paketiniz yüklüyse, rpm -ql packageName
Jared Updike'ı

1
Paketiniz yoksa ve yüklü değilse, paketin URL'sini ile bulabilirsiniz youdownload --urls.
kamae

Bu olmalıyumdownloader --urls
Evgeni Sergeev

3

Burada birkaç iyi yanıt var, bu yüzden korkunç bir cevap vereyim:

: 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

Yum'un kendi paket tipi yok. Yum, RPM'leri yönetir ve yönetir. Böylece, kullanılabilir RPM'leri listelemek için yum'u kullanabilir ve daha sonra bu paketin içeriğini görmek için rpm -qlp komutunu çalıştırabilirsiniz.


0

Şu anda reopqueryentegre edilmiştir dnfve yum, yazarak böylece:

dnf repoquery -l <pkg-name>

paket içeriğini uzak bir depodan listeleyecektir (henüz yüklenmemiş paketler için bile)

Ayrı bir yükleme anlam dnf-utilsya yum-utilsşimdi özgün desteklenen ediliyor olarak paketi artık işlevsellik için gereklidir.


yüklü veya yerel ( *.rpmdosyalar) paketlerin içeriğini listelemek içinrpm -ql

yumorg dnf( repoquerysubcommand değil ) ile mümkün olduğunu sanmıyorum

Yanlışım varsa lütfen düzelt

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.