Checking package dependencies (up and down)

Today I was woking on updating one of the packages we maintain on our internal repos, and I was not sure exacly which packages required the one I was rebuilding. I had to check that, otherwise something could break if I did a mistake, and the best thing is to pre-check as much as possible.

So reading them Yum man page, I found the option “deplist”, which shows me all the packages which are required by a given package.

# yum deplist libsndfile
(…)
Finding dependencies:
package: libsndfile.i386 1.0.17-6.fc10
dependency: libm.so.6
provider: glibc.i386 2.9-2
provider: glibc.i686 2.9-2
provider: glibc.i686 2.9-3
provider: glibc.i386 2.9-3
dependency: libogg.so.0
provider: libogg.i386 2:1.1.3-9.fc9
(…)

Ok, that’s one part of the problem. But what would really impact this update would be any broken dependencies up, i.e. who depends on this given package.

The nice guys on #yum@freenode pointed me to pkg-provs-tree-view.py, which does exactly what I need.

# python pkg-provs-tree-view.py libsndfile
libsndfile-1.0.17-6.fc10.i386 [cmd line]
\_  Io-language-graphics-and-sound-20071010-6.fc10.i386 [2: libsndfile.so.1, libsndfile.so.1(libsndfile.so.1.0)]
\_  armstrong-0.2.6-6.fc10.i386 [2: libsndfile.so.1, libsndfile.so.1(libsndfile.so.1.0)]
|   \_  armstrong-devel-0.2.6-6.fc10.i386 [3: armstrong = 0.2.6-6.fc10, liblunarstd.so.0, libzzub.so.0]
|   \_  pyzzub-0.2.6-6.fc10.i386 [1: armstrong = 0.2.6-6.fc10]
|   |   \_  aldrin-0.13-1.fc10.noarch [1: pyzzub = 0.2.6-6.fc10]

And the best part is that it searches for any dependencies installed or not installed. This is way better than “rpm -q –whatrequires”. :D

Uma resposta para “Checking package dependencies (up and down)”

  1. Hugo Doria Disse:

    Gosto muito do Red Hat/Cent OS, mas acho o yum bem fraquinho. Ele é lento, gordo e com alguns bugs chatos.

    Alguns gerenciadores de pacotes conseguem mostrar esta parte de dependencias (up||down) de forma bem mais simples e sem a necessidade de scripts adicionais.

    Exemplo:

    $ pacman -Qi python

    Name : python
    Version : 2.6.2-2
    URL : http://www.python.org
    (…)
    Depends On : db bzip2 gdbm openssl>=0.9.8d zlib expat sqlite3
    Optional Deps : tk: for IDLE, pynche and modulator
    Required By : aurtools boost compizconfig-python dbus-python eog gnome-doc-utils go-openoffice hplip ipython lirc-utils mutagen namcap-git pacupdate pidgin pycairo pygobject pygtksourceview2 pyorbit pyrex python-dateutil python-feedparser python-geoip python-pybluez python-pysqlite pyxdg setuptools sip ufw
    (…)

    De qualquer forma sua dica foi ótima e até vai me ajudar em algumas situações. :)

Deixe uma resposta