5.2.4 Какой пакет требует данную возможность?

Основным параметром при запросе зависимостей является имя пакета, однако имеется возможность делать запрос и по имени зависимости. Этот функционал позволяет определить, какой пакет требует данную возможность.

Опция --whatrequires позволяет найти пакеты, требующие данную возможность. Базовый синтаксис:

rpm q query_options --whatrequires capability

Некоторые пакеты не требуются никакому другому:

$ rpm -q --whatrequires tcsh

no package requires tcsh

В какой-то степени это удачное обстоятельство, так как подобные пакеты могут быть удалены из системы без каких-либо проблем.

Разделяемые библиотеки также могут являтся именем зависимости. Запрос должен быть таким:

$ rpm -q --whatrequires librpm-4.1.so

rpm-4.1-1.06

net-snmp-5.0.1-6

rpm-python-4.1-1.06

rpm-devel-4.1-1.06

rpm-build-4.1-1.06

Этот пример показывает, что библиотека ядра системы RPM используется группой пакетов, имеющих отношение к RPM (за исключением пакета net-snmp).

Возможность, указываемая в запросе, должна быть поименована точно. Например, результаты будут различны для bash и /bin/bash, так как в первом случае имеет место имя пакета, во втором - команда. Для первого имени получим список пакетов, требующи наличия пакета bash:

$ rpm -q --whatrequires bash

gpm-1.19.3-20

info-4.0b-3

initscripts-6.40-1

sendmail-8.11.6-3

sysklogd-1.4.1-4

vixie-cron-3.0.1-63

ypbind-1.8-1

ypserv-1.3.12-2

Если же запросить пакеты, которые требуют интерпретатора /bin/bash, получим следующий вывод:

$ rpm -q --whatrequires /bin/bash

apmd-3.0final-34

at-3.1.8-20

autofs-3.1.7-21

autofs-3.1.7-21

bash-2.05-8

bind-9.1.3-4

cipe-1.4.5-6

rontabs-1.10-1

dialog-0.9a-5

gpm-1.19.3-20

hotplug-2001_04_24-11

initscripts-6.40-1

ipchains-1.3.10-10

iproute-2.2.4-14

kudzu-0.99.23-1

logwatch-2.1.1-3

man-1.5i2-6

mkbootdisk-1.4.2-3

mkinitrd-3.2.6-1

mutt-1.2.5i-17

openssh-server-3.1p1-2

pine-4.44-1.72.0

rpm-build-4.0.3-1.03

rusers-server-0.17-12

sendmail-8.11.6-3

shapecfg-2.2.12-7

sharutils-4.2.1-8

sysklogd-1.4.1-4

tetex-1.0.7-30

ucd-snmp-4.2.1-7

vixie-cron-3.0.1-63

xinetd-2.3.3-1

ypbind-1.8-1

ypserv-1.3.12-2

Не существует короткой формы опции --whatrequires .

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

# rpm -q --whatrequires libcrypt.so.1 | sort

autofs-3.1.7-21

cvs-1.11.1p1-3

cyrus-sasl-1.5.24-23

cyrus-sasl-devel-1.5.24-23

cyrus-sasl-plain-1.5.24-23

fetchmail-5.9.0-1

ircii-4.4Z-7

krbafs-1.0.9-2

nss_ldap-172-2

openldap12-1.2.12-4

openldap-2.0.11-13

openldap-clients-2.0.11-13

pam-0.75-19

pam_krb5-1.46-1

passwd-0.64.1-7

perl-5.6.0-17

pine-4.44-1.72.0

pwdb-0.61.1-3

python-1.5.2-35

rsh-0.17-5

rsh-server-0.17-5

screen-3.9.9-3

sendmail-8.11.6-3

shadow-utils-20000902-4

sh-utils-2.0.11-5

SysVinit-2.78-19

tcsh-6.10-6

util-linux-2.11f-17

vim-enhanced-5.8-7

wu-ftpd-2.6.1-20

xinetd-2.3.3-1

ypserv-1.3.12-2

yp-tools-2.5-1

Поскольку некоторые пакеты требуют доступа к функциям шифрования/дешифрования, эта библиотека приобретает критическое значение для нормального функционирования операционной системы.

Для более удобного отслеживания зависимостей запросы можно комбинировать. Например:

$ rpm -q --provides sendmail

smtpdaemon

sendmail = 8.11.6-3

$ rpm -q --whatrequires smtpdaemon

fetchmail-5.9.0-1

mutt-1.2.5i-17

Первая команда выводит список возможностей, которые предоставляет пакет sendmail, включая шаблонную возможность smtpdaemon. Далее можно запросить список пакетов, нуждающихся в этих возможностях, как показано во второй команде. Это хорошая помощь в процессе анализа пакетов, которые зависят от других пакетов, которые зависят еще от каких-то пакетов.

Далее - Какой пакет предоставляет данную возможность?
Назад - Проверка на конфликты
Содержание