Changes between Initial Version and Version 1 of Packages/rpm/rpm-python/rpminfo


Ignore:
Timestamp:
2011/10/22 18:14:09 (11 years ago)
Author:
yasumichi
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Packages/rpm/rpm-python/rpminfo

    v1 v1  
     1= パッケージの詳細情報を表示する = 
     2 
     3[http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch16s03s05.html Printing information on packages]の例は、そのままでは期待通りに動作しない。rpm.ds オブジェクトの仕様が、当時と違うと思われる。 
     4 
     5== rpminfo.py == 
     6 
     7{{{ 
     8 
     9#!/usr/bin/python 
     10# Lists information on installed package listed on command line. 
     11# Usage: 
     12# python rpminfo.py package_name 
     13 
     14import rpm, sys 
     15 
     16def printEntry(header, label, format, extra): 
     17        value = header.sprintf(format).strip() 
     18        print "%-20s: %s %s" % (label, value, extra) 
     19 
     20def printHeader(h): 
     21        if h[rpm.RPMTAG_SOURCEPACKAGE]: 
     22                extra = " source package" 
     23        else: 
     24                extra = " binary package" 
     25 
     26        printEntry(h, 'Package', "%{NAME}-%{VERSION}-%{RELEASE}", extra) 
     27        printEntry(h, 'Group', "%{GROUP}", '') 
     28        printEntry(h, 'Summary', "%{Summary}", '') 
     29        printEntry(h, 'Arch-OS-Platform', "%{ARCH}-%{OS}-%{PLATFORM}", '') 
     30        printEntry(h, 'Vendor', "%{Vendor}", '') 
     31        printEntry(h, 'URL', "%{URL}", '') 
     32        printEntry(h, 'Size', "%{Size}", '') 
     33        printEntry(h, 'Installed on', "%{INSTALLTID:date}", '') 
     34 
     35        print h['description'] 
     36        print "Files:" 
     37        for fi in h.fiFromHeader(): 
     38                print fi[0] 
     39 
     40        # Dependencies 
     41        print "Provides:" 
     42        for ds in h.dsFromHeader('providename'): 
     43                print ds.DNEVR() 
     44        print "Requires:" 
     45        for ds in h.dsFromHeader('requirename'): 
     46                print ds.DNEVR() 
     47        print "Obsoletes:" 
     48        for ds in h.dsFromHeader('obsoletename'): 
     49                print ds.DNEVR() 
     50        print "Conflicts:" 
     51        for ds in h.dsFromHeader('conflictname'): 
     52                print ds.DNEVR() 
     53 
     54ts = rpm.TransactionSet() 
     55for name in sys.argv: 
     56        mi = ts.dbMatch( 'name', name ) 
     57        for h in mi: 
     58                printHeader(h) 
     59}}} 
     60 
     61=== 実行例 === 
     62 
     63{{{ 
     64 
     65}}}