Как получить список зависимостей неустановленного пакета RPM?

73

apt-cache show <package> показывает также его зависимости.

yum info <package> не показывает зависимости, но он, очевидно, знает их.

Как запросить у yum зависимости указанного пакета?

Vi.
источник

Ответы:

85

у ням такой возможности нет. Вместо этого используйте repoqueryинструмент из yum-utilsпакета.

repoquery --requires <package>

ИЛИ также, чтобы увидеть, какие дополнительные пакеты RPM необходимы для удовлетворения зависимостей, используйте --resolve

repoquery --requires --resolve <package>
Игнасио Васкес-Абрамс
источник
Как бы я сделал то же самое, если у меня есть локальный файл RPM?
Усман Исмаил
Может быть, извлечь файл управления из пакета rpm и посмотреть на него?
Ви.
13
Если у вас есть его, то вы используете rpm -qp --requires <package file>.
Игнасио Васкес-Абрамс
Если вы используете RHN, вам нужно добавить --plugins в вызов repoquery. См stackoverflow.com/questions/15433843/...
НЛ
Что на --resolveсамом деле делает? Запуск repoquery --requires --resolveна пакете, который уже установлен, должен вернуть право пустого списка, так как все зависимости уже удовлетворены? Когда я попробовал это на пакете, который уже установлен, я получил несколько перечисленных, в том числе и себя (все они уже установлены).
Haridsv
47

Используйте deplistкоманду,

yum deplist <package>

Из руководства Yum:

Создает список всех зависимостей и какие пакеты предоставляют эти зависимости для указанных пакетов.

Обновление для dnf

Чтобы сделать то же самое с dnf, мы можем сделать

dnf repoquery --requires <package>

Как man yum2dnfсказано:

Альтернативой команде Yum deplist для определения зависимостей пакета является dnf repoquery - требует использования плагина repoquery.

Navid Ht
источник
5
К сожалению, это вернет список всех возможных провайдеров каждой зависимости, который может в конечном итоге вернуть многие сотни или тысячи строк вместо простого списка имен зависимых пакетов.
Deesto
13

Если у вас есть локальный RPM, вы можете получить список зависимостей через:

rpm -qpR mediawiki-1.4rc1-4.i586.rpm
Пит
источник
2
Работает и для URL.
Acumenus
если вы пропустите опцию -q, то можете запросить ваши настроенные репозитории: rpm -qR graphviz перечисляет все зависимости для меня
natxo asenjo
2

Если вам нужен список необходимых пакетов, используйте:

dnf repoquery --requires --resolve`

В случае Firefox, запустив:

sudo dnf repoquery --requires --resolve firefox

У меня есть выход: Last metadata expiration check: 0:00:00 ago on Wed 13 Dec 2017 21:41:47 GMT. atk-0:2.26.1-1.fc27.x86_64 bash-0:4.4.12-12.fc27.x86_64 cairo-0:1.15.8-1.fc27.x86_64 cairo-gobject-0:1.15.8-1.fc27.x86_64 dbus-glib-0:0.108-4.fc27.x86_64 dbus-libs-1:1.12.0-1.fc27.x86_64 fontconfig-0:2.12.6-4.fc27.x86_64 freetype-0:2.8-6.fc27.x86_64 freetype-freeworld-0:2.8-4.fc27.x86_64 gdk-pixbuf2-0:2.36.11-1.fc27.x86_64 glib2-0:2.54.2-1.fc27.x86_64 glibc-0:2.26-16.fc27.i686 glibc-0:2.26-16.fc27.x86_64 gtk2-0:2.24.31-6.fc27.x86_64 gtk3-0:3.22.26-1.fc27.x86_64 hunspell-0:1.5.4-4.fc27.x86_64 libX11-0:1.6.5-4.fc27.x86_64 libX11-xcb-0:1.6.5-4.fc27.x86_64 libXcomposite-0:0.4.4-11.fc27.x86_64 libXdamage-0:1.1.4-11.fc27.x86_64 libXext-0:1.3.3-7.fc27.x86_64 libXfixes-0:5.0.3-4.fc27.x86_64 libXrender-0:0.9.10-4.fc27.x86_64 libXt-0:1.1.5-6.fc27.x86_64 libffi-0:3.1-14.fc27.x86_64 libgcc-0:7.2.1-2.fc27.x86_64 libjpeg-turbo-0:1.5.1-4.fc27.x86_64 libstdc++-0:7.2.1-2.fc27.x86_64 libvpx-0:1.6.1-4.fc27.x86_64 libxcb-0:1.12-5.fc27.x86_64 mozilla-filesystem-0:1.9-17.fc27.x86_64 nspr-0:4.17.0-1.fc27.i686 nspr-0:4.17.0-1.fc27.x86_64 nss-0:3.34.0-1.0.fc27.i686 nss-0:3.34.0-1.0.fc27.x86_64 nss-util-0:3.34.0-1.0.fc27.x86_64 p11-kit-trust-0:0.23.8-1.fc27.i686 p11-kit-trust-0:0.23.9-2.fc27.x86_64 pango-0:1.40.14-1.fc27.x86_64 startup-notification-0:0.12-14.fc27.x86_64 u2f-hidraw-policy-0:1.0.2-5.fc27.x86_64 zlib-0:1.2.11-4.fc27.x86_64

Пауло Фидальго
источник
0

Если вы хотите установить пакет и его зависимости через yum, попробуйте вместо этого опцию localinstall. localinstallУстановить пакет и находит всю зависимость и загружают их:

$ yum -y localinstall <package>

Я не гуру ням, но это прекрасно работает для меня, облегчает установку, включая зависимости :-)

Yooakim
источник