パッケージの詳細情報を表示する
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
for dep_type in [ ['providename', 'Provides:'],
['requirename', 'Requires:'],
['obsoletename', 'Obsoletes:'],
['conflictname', 'Conflicts:'] ]:
ds = h.dsFromHeader(dep_type[0])
if ds.Count() > 0:
print dep_type[1]
for provide in ds:
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 shadow-utils
Obsoletes:
O rpm-perl < 4.8.1
Conflicts:
C patch < 2.5
rpm.ds クラスの詳細(書きかけ)
メソッド | 説明
|
DNEVR |
|
BT |
|
SetNoPromote |
|
EVR |
|
TagN |
|
Sort |
|
Count |
|
Search |
|
N |
|
Merge |
|
Flags |
|
Ix |
|
Compare |
|
Color |
|
Refs |
|
Notify |
|
Find |
|