0 purchases
rpmfile 2.1.0
rpmfile
Tools for inspecting RPM files in python. This module is modeled after the
tarfile module.
Install
$ python -m pip install -U rpmfile
If you want to use rpmfile with zstd compressed rpms, you'll need to install
the zstandard module.
zstd also requires that you are using Python >= 3.5
$ python -m pip install -U zstandard
Example
See the tests for more examples.
import rpmfile
with rpmfile.open('file.rpm') as rpm:
# Inspect the RPM headers
print(rpm.headers.keys())
print(rpm.headers.get('arch', 'noarch'))
# Extract a fileobject from the archive
fd = rpm.extractfile('./usr/bin/script')
print(fd.read())
for member in rpm.getmembers():
print(member)
Command line usage
You can use rpmfile via it's module invocation or via rpmfile command if
your PATH environment variable is configured correctly. Pass --help for all
options.
List RPM contents
curl -sfL 'https://example.com/some.rpm.gz' | gzip -d - | python -m rpmfile -l -
./path/to/file
Extract files
curl -sfL 'https://example.com/some.rpm.gz' | gzip -d - | rpmfile -xv -
./path/to/file
Extract files to directory
curl -sfL 'https://example.com/some.rpm.gz' | gzip -d - | rpmfile -xvC /tmp -
/tmp/path/to/file
Display RPM information (similar to command rpm -qip in Linux)
curl -sfL 'https://example.com/some.rpm.gz' |gzip -d - | rpmfile -i -
Name : something
Version : 1.02
Release : 1
Architecture: noarch
Group : default
Size : 1234
License : BSD
Signature : None
Source RPM : some.src.rpm
Build Date : Tue Apr 9 08:55:16 2019
Build Host : demo
URL : http://example.com/some
Summary : Example of something
Description :
The description of something.
It can display more than one line.
Classes
rpmfile.RPMFile: The RPMFile object provides an interface to a RPM archive
rpmfile.RPMInfo: An RPMInfo object represents one member in a RPMFile.
Contributing
The black formater should be used on all files
before submitting a contribution. Version 19.10b0.
$ pip install black==19.10b0
$ black .
Code in this module was borrowed from:
https://bitbucket.org/krp/cpiofile
https://github.com/mjvm/pyrpm
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.