yum: дерево зависимостей RPM

12

Я собираюсь установить RPM-пакет и вижу, что для некоторых зависимостей также необходимо установить библиотеки X-сервера. Я абсолютно уверен, что пакет, который мне нужен, является серверным программным обеспечением и не требует X-сервера.

Интересно, есть ли способ напечатать список зависимостей RPM, как это сделано в Gentoo Linux?

   введите описание изображения здесь

Эта команда печатает только зависимости первого уровня, поэтому она мне не подходит:

$ yum deplist <package name>
Энтони Ананич
источник

Ответы:

22

В RHEL6 есть команда repoqueryиз yum-utilsпакета. Это может сделать это:

# repoquery --tree-requires bash
bash-4.1.2-15.el6_4.x86_64 [cmd line]
 \_  glibc-2.12-1.132.el6_5.4.i686 [1: rtld(GNU_HASH)]
 |   \_  basesystem-10.0-4.el6.noarch [1: basesystem]
 |   |   \_  filesystem-2.4.30-3.el6.x86_64 [1: filesystem]
 |   |   |   \_  setup-2.8.14-20.el6_4.1.noarch [1: setup >= 2.5.4-1]
 |   |   \_  setup-2.8.14-20.el6_4.1.noarch [1: setup]
 |   \_  glibc-common-2.12-1.132.el6_5.4.x86_64 [1: glibc-common = 2.12-1.132.el6_5.4]
 |   |   \_  bash-4.1.2-15.el6_4.x86_64 [2: /bin/bash, /bin/sh]
 |   |   |   \_  glibc-2.12-1.132.el6_5.4.i686 [1: rtld(GNU_HASH)]
 |   |   |   \_  glibc-2.12-1.132.el6_5.4.x86_64 [4: libc.so.6(GLIBC_2.4)(64bit), libdl.so.2()(64bit), libdl.so.2(GLIBC_2.2.5)(64bit), rtld(GNU_HASH)]
 |   |   |   \_  ncurses-libs-5.7-3.20090208.el6.i686 [1: ncurses-libs]
 |   |   |   \_  ncurses-libs-5.7-3.20090208.el6.x86_64 [2: libtinfo.so.5()(64bit), ncurses-libs]
 |   |   \_  glibc-2.12-1.132.el6_5.4.i686 [1: glibc = 2.12-1.132.el6_5.4]
 |   |   \_  glibc-2.12-1.132.el6_5.4.x86_64 [4: glibc = 2.12-1.132.el6_5.4, libc.so.6(GLIBC_2.3)(64bit), libdl.so.2()(64bit), libdl.so.2(GLIBC_2.2.5)(64bit)]
 |   |   \_  libcap-2.16-5.5.el6.x86_64 [1: libcap.so.2()(64bit)]
 |   |   |   \_  glibc-2.12-1.132.el6_5.4.i686 [2: /sbin/ldconfig, rtld(GNU_HASH)]
 |   |   |   \_  glibc-2.12-1.132.el6_5.4.x86_64 [3: /sbin/ldconfig, libc.so.6(GLIBC_2.3.3)(64bit), rtld(GNU_HASH)]
 |   |   |   \_  libattr-2.4.44-7.el6.x86_64 [2: libattr.so.1()(64bit), libattr.so.1(ATTR_1.0)(64bit)]
 |   |   |   |   \_  glibc-2.12-1.132.el6_5.4.i686 [2: /sbin/ldconfig, rtld(GNU_HASH)]
 |   |   |   |   \_  glibc-2.12-1.132.el6_5.4.x86_64 [3: /sbin/ldconfig, libc.so.6(GLIBC_2.4)(64bit), rtld(GNU_HASH)]
 |   |   \_  tzdata-2014e-1.el6.noarch [1: tzdata >= 2003a]
 |   \_  libgcc-4.4.7-4.el6.i686 [1: libgcc]
 |   \_  libgcc-4.4.7-4.el6.x86_64 [1: libgcc]
 |   \_  nss-softokn-freebl-3.14.3-10.el6_5.i686 [2: libfreebl3.so, libfreebl3.so(NSSRAWHASH_3.12.3)]
 |   |   \_  glibc-2.12-1.132.el6_5.4.i686 [5: libc.so.6(GLIBC_2.7), libdl.so.2, libdl.so.2(GLIBC_2.0), libdl.so.2(GLIBC_2.1), rtld(GNU_HASH)]
 |   |   \_  glibc-2.12-1.132.el6_5.4.x86_64 [1: rtld(GNU_HASH)]
 \_  glibc-2.12-1.132.el6_5.4.x86_64 [4: libc.so.6(GLIBC_2.4)(64bit), libdl.so.2()(64bit), libdl.so.2(GLIBC_2.2.5)(64bit), rtld(GNU_HASH)]
 |   \_  basesystem-10.0-4.el6.noarch [1: basesystem]
 |   \_  glibc-common-2.12-1.132.el6_5.4.x86_64 [1: glibc-common = 2.12-1.132.el6_5.4]
 |   \_  libgcc-4.4.7-4.el6.i686 [1: libgcc]
 |   \_  libgcc-4.4.7-4.el6.x86_64 [1: libgcc]
 |   \_  nss-softokn-freebl-3.14.3-10.el6_5.x86_64 [2: libfreebl3.so()(64bit), libfreebl3.so(NSSRAWHASH_3.12.3)(64bit)]
 |   |   \_  glibc-2.12-1.132.el6_5.4.i686 [1: rtld(GNU_HASH)]
 |   |   \_  glibc-2.12-1.132.el6_5.4.x86_64 [4: libc.so.6(GLIBC_2.7)(64bit), libdl.so.2()(64bit), libdl.so.2(GLIBC_2.2.5)(64bit), rtld(GNU_HASH)]
 \_  ncurses-libs-5.7-3.20090208.el6.i686 [1: ncurses-libs]
 |   \_  glibc-2.12-1.132.el6_5.4.i686 [6: /sbin/ldconfig, libc.so.6(GLIBC_2.4), libdl.so.2, libdl.so.2(GLIBC_2.0), libdl.so.2(GLIBC_2.1), rtld(GNU_HASH)]
 |   \_  glibc-2.12-1.132.el6_5.4.x86_64 [2: /sbin/ldconfig, rtld(GNU_HASH)]
 |   \_  ncurses-base-5.7-3.20090208.el6.x86_64 [1: ncurses-base = 5.7-3.20090208.el6]
 \_  ncurses-libs-5.7-3.20090208.el6.x86_64 [2: libtinfo.so.5()(64bit), ncurses-libs]
 |   \_  glibc-2.12-1.132.el6_5.4.i686 [2: /sbin/ldconfig, rtld(GNU_HASH)]
 |   \_  glibc-2.12-1.132.el6_5.4.x86_64 [5: /sbin/ldconfig, libc.so.6(GLIBC_2.4)(64bit), libdl.so.2()(64bit), libdl.so.2(GLIBC_2.2.5)(64bit), rtld(GNU_HASH)]
 |   \_  ncurses-base-5.7-3.20090208.el6.x86_64 [1: ncurses-base = 5.7-3.20090208.el6]
Энтони Ананич
источник
Какая версия repoqueryэто? Я на F20 с версией: 0.0.11, которая не включает этот переключатель.
СЛМ
1.1.30-17.el6_5
Энтони Ананич,
Так что этот переключатель может не быть стандартным, скорее всего, он используется только в более старой или разветвленной версии для RHEL.
СЛМ
Вы правы. Даже topв разных дистрибутивах установлены разные переключатели: unix.stackexchange.com/q/105908/16253
Энтони Ананич,
Да, я бы поставил перед тобой А, чтобы было ясно, что это не стандартное переключение, или найду общее решение и добавлю его к этому А.
slm