Как составить список всех файлов, установленных пакетом ZYpp/Zypper?

Как составить список всех файлов, установленных пакетом ZYpp/Zypper?

Как можно использовать zypperдля просмотра списка местоположений установленных файлов для заданного пакета?

решение1

об/минможет использоваться для вывода списка установленных файлов из пакета <package>с помощью:

rpm -ql <package>

длинная версия:

rpm --query --list <package>

zypper (на данный момент) не поддерживает вывод списка установленных файлов.

Также я нахожу полезным "обратный" вариант. Чтобы найти пакет, "владеющий" файлом, <file>можно использовать

rpm -qf <file>

возврат точной посылки.

решение2

В openSUSE есть несколько способов вывести список установленных файлов. С Zypper я бы попробовал:

zypper search -i

Или:

zypper search --installed-only

С помощью RPM вы можете попробовать:

rpm -ql packageName | less

решение3

Поскольку я не могу добавлять комментарии, я добавлю еще один ответ и постараюсь его правильно обобщить, поскольку ответы почти полные, но разрозненные.

СзипперСамо по себе это невозможно, но поскольку пакет устанавливаетсязиппер, он обычно находится на вашем жестком диске. Если его больше нет на жестком диске, вы можете просто загрузить его с помощьюзиппер, без необходимости переустановки:

zypper in --download-only <package_name>

Затем отображается имя загруженного пакета. Обычно это последнее имя пакета, поскольку зависимости извлекаются первыми (например,firewalld-0.7.5-1.1.noarch.rpmдля пакетаfirewalld). Чтобы найти каталог, вы можете просто использоватьнаходитьвот так:

find /var/cache/zypp -name <package_name>

Он должен вернуть одну строку с полным путем к файлу (например,/var/cache/zypp/packages/repo-oss/noarch/firewalld-0.7.5-1.1.noarch.rpm). Когда вы нашли пакет и знаете его путь, вы можете использоватьоб/мин:

rpm -ql <path_to_package>

Чтооб/минзатем lists — содержимое пакета, включая пути, по которым эти файлы будут установлены в вашей системе или уже установлены в вашей системе.

решение4

Поздний ответ, но есть еще один вариант: если вы используете openSUSE, в диспетчере программ Yast2 есть вкладка, на которой отображаются файлы, установленные пакетом.

Вы можете извлечь (некоторые) файлы из Zypper с помощью этой команды:

zypper if --provides <packagename>

Это список всего, что вы получаете с пакетом. Обычно не очень подробно и не включает библиотеки, но я не знаю, каков ваш вариант использования, и этого может быть достаточно.

Например

~$  zypper if --provides util-linux
Loading repository data... Reading installed packages...
Information for package util-linux:
-----------------------------------
Repository     : openSUSE-Tumbleweed-Oss
Name           : util-linux
Version        : 2.39-3.1
Arch           : x86_64
Vendor         : openSUSE
Installed Size : 4.2 MiB
Installed      : Yes
Status         : out-of-date (version 2.39-2.1 installed)
Source package : util-linux-2.39-3.1.src
Upstream URL   : https://www.kernel.org/pub/linux/utils/util-linux/
Summary        : A collection of basic system utilities (core part)
Description    :
    This package contains a large variety of low-level system utilities
    that are necessary for a Linux system to function. It contains the
    mount program, the fdisk configuration tool, and more.
Provides       : [27]
    /bin/su
    /bin/kill
    /bin/more
    /bin/mount
    /bin/umount
    util-linux(fake+no-canonicalize)
    config(util-linux) = 2.39-3.1
    eject = 2.1.0
    fsck-with-dev-lock = 2.39
    hardlink = 1.1
    login = 4.0
    rfkill = 0.5
    util-linux = 2.39-3.1
    util-linux(x86-64) = 2.39-3.1
    /usr/bin/getopt
    /usr/bin/ipcrm
    /usr/bin/ipcs
    /usr/bin/kill
    /usr/bin/more
    /usr/bin/mount
    /usr/bin/renice
    /usr/bin/setpriv
    /usr/bin/su
    /usr/bin/umount
    /usr/sbin/nologin
    /usr/bin/col
    /usr/sbin/agetty

Связанный контент