Назад | Перейти на главную страницу

Как вывести список зависимостей RPM?

Наш рабочий сервер работает под управлением CentOS версии 5.2 (Final).

Как мне увидеть / получить / перечислить все зависимости уже установлено Пакет RPM?

Например: SQLite v3.3.6 уже установлен на сервере. Я хочу увидеть все зависимости этого конкретного пакета.

Вот результат выполнения команды: rpm -qa |grep sqlite

python-sqlite-1.1.7-1.2.1
sqlite-3.3.6-2
sqlite-3.3.6-2

Кроме того, почему он перечисляет 2 записи sqlite-3.3.6-2 Вот?

В yum deplist команда покажет вам, какой об / минявляются зависимостями, вот пример для expect пакет (это будет работать, даже если пакет еще не установлен локально):

# yum deplist expect
..
..
package: expect.i386 5.43.0-5.1
 dependency: libc.so.6
  provider: glibc.i686 2.5-49
  provider: glibc.i686 2.5-49
 dependency: libtcl8.4.so
  provider: tcl.i386 8.4.13-4.el5
  1. rpm -q --requires somepackagehere

  2. Один из них i?86 пакет, другой - x86_64 пакет.

Следуя ответу Игнасио, вы можете увидеть конкретную архитектуру пакетов, выполнив следующие действия:

$ rpm -qa --queryformat "%{NAME} %{ARCH}\n" sqlite
sqlite i686

В моем случае у меня только один, пакет i686 ... но таким образом вы можете получить архитектуру, связанную с пакетами. Если вас интересует, что еще можно получить из --queryformat, выполните rpm --querytags чтобы увидеть список доступных переменных.

У меня есть быстрый фрагмент оболочки, который распечатывает все установленные пакеты вместе с их зависимостями:

for i in `rpm -qa` ; do echo "Package [$i]:"; rpm -q --requires $i ; echo ; done

Люди уже ответили:

  1. rpm -q --requires PKG
  2. yum -q deplist PKG

Да либо rpm или yum работает и правильно отвечает на вопрос. Основное различие между rpm и yum в том, что yum также показывает, какие пакеты вы можете установить в соответствии с требованиями библиотеки и / или файла. К сожалению, если пакет не установлен, ни один из этих методов не поможет. Поскольку на исходном плакате уже указано, что проверяемый пакет установлен, это точка отключения.

Что делать, если у вас не установлен пакет? yum все еще можно использовать, но косвенно. Вы можете выполнить фиктивную установку, отменив операцию установки.

printf n  |  yum install PKG  |  grep -- "---> Package"

Вот пример:

printf n  |  yum install php  |  grep -- "---> Package"
---> Package php.x86_64 0:5.4.16-45.el7 will be installed
---> Package php-cli.x86_64 0:5.4.16-45.el7 will be installed
---> Package php-common.x86_64 0:5.4.16-45.el7 will be installed
---> Package libzip.x86_64 0:0.10.1-8.el7 will be installed