it-swarm-eu.dev

Jak zobrazit obsah balíku pomocí YUM?

Vím, jak používat rpm pro výpis obsahu balíčku (rpm -qpil package.rpm). To však vyžaduje znát umístění souboru .rpm v souborovém systému. Elegantnějším řešením by bylo použití správce balíčků, což je v mém případě YUM. Jak lze YUM využít k dosažení tohoto cíle?

294
Lorin Hochstein

Existuje balíček nazvaný yum-utils, který vychází z YUM a obsahuje nástroj nazvaný repoquery, který to může udělat.

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

Kombinováno do jednoho příkladu:

$ 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

Na alespoň jednom systému RH, s rpm v4.8.0, yum v3.2.29 a repoquery v0.0.11, repoquery -l rpm nic nevytiskne.

Pokud máte tento problém, zkuste přidat příznak --installed: repoquery --installed -l rpm.


DNF Aktualizovat:

Chcete-li místo yum-utils použít dnf, použijte následující příkaz:

$ 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
416
rpm -ql [packageName]

Příklad

# 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

Není třeba instalovat yum-utils nebo znát umístění souboru rpm.

143
Levit
$ yum install -y yum-utils

$ repoquery -l packagename
74

Nemyslím si, že můžete obsah yumu vypsat pomocí yum, ale pokud máte ve vašem lokálním systému soubor .rpm (což bude s největší pravděpodobností platit pro všechny nainstalované balíčky), můžete použít příkaz rpm na seznam obsah tohoto balíčku:

rpm -qlp /path/to/fileToList.rpm

Pokud nemáte soubor balíčku (.rpm), ale máte nainstalovaný balíček, zkuste toto:

rpm -ql packageName
28
Thomi

Je zde několik dobrých odpovědí, takže mi dovolte, abych vám poskytl hrozné odpovědi:

: 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
3
barrycarter

Yum nemá vlastní typ balíčku. Yum pracuje a pomáhá spravovat RPM. Můžete tedy použít yum k zobrazení dostupných RPM a pak spustit příkaz rpm -qlp, abyste viděli obsah tohoto balíčku.

0
Haabda

reopquery je nyní integrováno do dnf a yum, takže psaní:

dnf repoquery -l <pkg-name>

vypíše obsah balíku ze vzdáleného úložiště (i pro balíčky, které ještě nejsou nainstalovány)

což znamená, že instalace samostatného balíčku dnf-utils nebo yum-utils již není pro funkčnost vyžadována, protože je nyní podporována nativně.


pro výpis instalovaný nebo local (*.rpm files) obsah balíků je rpm -ql

nemyslím si, že je to možné s yum org dnf (ne podpříkaz repoquery)

prosím, opravte mě, pokud se mýlím

0
w17t