Наш рабочий сервер работает под управлением 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
rpm -q --requires somepackagehere
Один из них 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
Люди уже ответили:
rpm -q --requires PKG
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