Як отримати список залежностей від невстановленого пакету RPM?


73

apt-cache show <package> показує також, що це залежності.

yum info <package> не показує залежностей, але, очевидно, їх знає.

Як попросити yum на залежності вказаного пакета?

Відповіді:


85

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

repoquery --requires <package>

АБО щоб також побачити, які додаткові пакети RPM необхідні для задоволення залежностей, використовуйте --resolve

repoquery --requires --resolve <package>

Як би я це зробив, якщо у мене є локальний файл rpm?
Усман Ісмаїл

Можливо, витягніть контрольний файл з пакету rpm і загляньте в нього?
Ві.

13
Якщо ви його завантажили, то використовуєте rpm -qp --requires <package file>.
Ігнасіо Васкес-Абрамс

Якщо ви використовуєте RHN, вам потрібно додати --plugins до виклику для повторного запиту. Див stackoverflow.com/questions/15433843 / ...
НЛ

Що --resolveнасправді робить? Працюючи repoquery --requires --resolveз уже встановленим пакетом, слід повернути порожній список правильно, оскільки всі залежності вже задоволені? Коли я спробував це на вже встановленому пакеті, я отримав декілька перелічених, включаючи себе (усі вони вже встановлені).
haridsv

46

Використовувати deplistкоманду,

yum deplist <package>

З посібника Yum:

Створює перелік усіх залежностей і які пакунки забезпечують ці залежності для даних пакетів.

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

Щоб зробити те ж саме з dnf, ми можемо зробити

dnf repoquery --requires <package>

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

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


5
На жаль, це поверне список усіх можливих постачальників кожної залежності, який може призвести до повернення багатьох сотень чи тисяч рядків замість простого списку імен залежних пакетів.
деесто

13

Якщо у вас локальний RPM, ви можете отримати список залежностей за допомогою:

rpm -qpR mediawiki-1.4rc1-4.i586.rpm

2
Працює і для URL-адрес.
Acumenus

якщо ви відмовите -q, ви можете запитати налаштовані репозиції: rpm -qR graphviz перераховує всі залежності для мене
natxo asenjo

2

Якщо вам потрібен список необхідних пакетів, використовуйте:

dnf repoquery - вимагає --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>

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.