rpm requires

"Adam Mikuta" <[email protected]> Thu, 13 Apr 2006 18:53:12 +0200
Newsgroups gmane.linux.redhat.rpm.python
Message-ID <[email protected]>
I want get from rpm base the names of required packages by other packages:

import rpm
ts =3D rpm.TransactionSet()
mi =3D ts.dbMatch('name', "vim")
for h in mi:
        print h[rpm.RPMTAG_REQUIRENAME],'\n'
        print h[rpm.RPMTAG_REQUIRES],'\n'

This results:

['/bin/sh', '/bin/sh', 'libacl.so.1', 'libacl.so.1(ACL_1.0)',
'libc.so.6', 'libc.so.6(GLIBC_2.0)', 'libc.so.6(GLIBC_2.1)',
'libc.so.6(GLIBC_2.2)', 'libc.so.6(GLIBC_2.3)', 'libdl.so.2',
'libdl.so.2(GLIBC_2.0)', 'libdl.so.2(GLIBC_2.1)', 'libgpm.so.1',
'libm.so.6', 'libncurses.so.5', 'libperl.so.5.8.0', 'libpthread.so.0',
'libpthread.so.0(GLIBC_2.0)', 'libpython2.4.so.1.0',
'libselinux.so.1', 'libtinfo.so.5', 'libutil.so.1',
'rpmlib(CompressedFileNames)', 'rpmlib(PayloadFilesHavePrefix)',
'vim-rt', 'rpmlib(PayloadIsBzip2)']

['/bin/sh', '/bin/sh', 'libacl.so.1', 'libacl.so.1(ACL_1.0)',
'libc.so.6', 'libc.so.6(GLIBC_2.0)', 'libc.so.6(GLIBC_2.1)',
'libc.so.6(GLIBC_2.2)', 'libc.so.6(GLIBC_2.3)', 'libdl.so.2',
'libdl.so.2(GLIBC_2.0)', 'libdl.so.2(GLIBC_2.1)', 'libgpm.so.1',
'libm.so.6', 'libncurses.so.5', 'libperl.so.5.8.0', 'libpthread.so.0',
'libpthread.so.0(GLIBC_2.0)', 'libpython2.4.so.1.0',
'libselinux.so.1', 'libtinfo.so.5', 'libutil.so.1',
'rpmlib(CompressedFileNames)', 'rpmlib(PayloadFilesHavePrefix)',
'vim-rt', 'rpmlib(PayloadIsBzip2)']

But how i can get packages names like:

$ rpm -q --whatrequires bash
hotplug-2004_09_23-5.i686

Adam