= パッケージの詳細情報を表示する = [http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch16s03s05.html Printing information on packages]の例は、そのままでは期待通りに動作しない。rpm.ds オブジェクトの仕様が、当時と違うと思われる。 == rpminfo.py == {{{ #!/usr/bin/python # Lists information on installed package listed on command line. # Usage: # python rpminfo.py package_name import rpm, sys def printEntry(header, label, format, extra): value = header.sprintf(format).strip() print "%-20s: %s %s" % (label, value, extra) def printHeader(h): if h[rpm.RPMTAG_SOURCEPACKAGE]: extra = " source package" else: extra = " binary package" printEntry(h, 'Package', "%{NAME}-%{VERSION}-%{RELEASE}", extra) printEntry(h, 'Group', "%{GROUP}", '') printEntry(h, 'Summary', "%{Summary}", '') printEntry(h, 'Arch-OS-Platform', "%{ARCH}-%{OS}-%{PLATFORM}", '') printEntry(h, 'Vendor', "%{Vendor}", '') printEntry(h, 'URL', "%{URL}", '') printEntry(h, 'Size', "%{Size}", '') printEntry(h, 'Installed on', "%{INSTALLTID:date}", '') print h['description'] print "Files:" for fi in h.fiFromHeader(): print fi[0] # Dependencies print "Provides:" for ds in h.dsFromHeader('providename'): print ds.DNEVR() print "Requires:" for ds in h.dsFromHeader('requirename'): print ds.DNEVR() print "Obsoletes:" for ds in h.dsFromHeader('obsoletename'): print ds.DNEVR() print "Conflicts:" for ds in h.dsFromHeader('conflictname'): print ds.DNEVR() ts = rpm.TransactionSet() for name in sys.argv: mi = ts.dbMatch( 'name', name ) for h in mi: printHeader(h) }}} === 実行例 === {{{ $ python rpminfo.py rpm Package : rpm-4.8.1-3vl6 binary package Group : System Environment/Base Summary : RPM パッケージ管理システム Arch-OS-Platform : x86_64-linux-x86_64-vine-linux Vendor : Project Vine URL : (none) Size : 1731019 Installed on : Sat Feb 5 07:26:24 2011 RPM パッケージマネージャ (RPM) は,ソフトウェアパッケージを インストール/アンインストール/チェック/問い合わせ/アップデート する機能を持った高機能パッケージマネージングシステムです. 各パッケージには,ファイルのアーカイブに加え,名前,バージョン, 説明などのパッケージ情報が含まれています. Files: /bin/rpm /etc/cron.daily/rpm /etc/logrotate.d/rpm /etc/rpm /usr/bin/gendiff /usr/bin/rpm2cpio /usr/bin/rpmdb /usr/bin/rpmquery /usr/bin/rpmsign /usr/bin/rpmverify (中略) /var/lib/rpm/__db.009 /var/spool/repackage Provides: P config(rpm) = 4.8.1-3vl6 P rpm = 4.8.1-3vl6 P rpm(x86-64) = 4.8.1-3vl6 Requires: R /bin/bash R /bin/sh R /bin/sh R /bin/sh R /bin/sh R /bin/sh R config(rpm) = 4.8.1-3vl6 R coreutils R coreutils R db4-utils R libacl.so.1()(64bit) R libbz2.so.1()(64bit) R libc.so.6()(64bit) R libc.so.6(GLIBC_2.2.5)(64bit) R libcap.so.2()(64bit) R libdb-4.8.so()(64bit) R libelf.so.1()(64bit) R liblua-5.1.so()(64bit) R liblzma.so.5()(64bit) R libm.so.6()(64bit) R libmagic.so.1()(64bit) R libnss3.so()(64bit) R libpopt.so.0()(64bit) R libpopt.so.0(LIBPOPT_0)(64bit) R libpthread.so.0()(64bit) R libpthread.so.0(GLIBC_2.2.5)(64bit) R librpm.so.1()(64bit) R librpmbuild.so.1()(64bit) R librpmio.so.1()(64bit) R librt.so.1()(64bit) R libz.so.1()(64bit) R nss >= 3.12.5 R popt >= 1.10.2.1 R rpm-libs = 4.8.1 R rpmlib(CompressedFileNames) <= 3.0.4-1 R rpmlib(VersionedDependencies) <= 3.0.3-1 R rtld(GNU_HASH) R shadow-utils R shadow-utils Obsoletes: O rpm-perl < 4.8.1 Conflicts: C patch < 2.5 }}}