����� ������������ OpenNet.ru / ������ "������������ ��� Linux" / ������

16.3.4 ������� � ���������� �������

����� ��� ������� ������ ���������� dbMatch, ������ ��������� ��������, ��� ���� ������ ���� ������ ������������� �������, ��������� � �� RPM. ����� ����� ��������� ���������� �� ��������� ������ (�������), ��������� dbMatch. ��� ����� � �������� ���������� ���������� �������� ��� ���� � ��� ��������:

mi = ts.dbMatch(tag_name, value)

��������, ������ ���� �������, ������� � ����� ������ sendmail, ����� ��������� ���:

mi = ts.dbMatch('name', 'sendmail')

����� dbMatch ���������� rpmdbMatchIterator. �� ������ ��������� ������������ �������� �� ���������� �����, �� �������� ����� ����������� ������� �� ������� �����.

���� ������� ������ ������� (rpmq.py), ������� ����������� ������ � ������������ �������� � ����� � ����� ������� ���, ������ � ����� ���� �������, ������� ������������� �������:

#!/usr/bin/python

# Acts like rpm -q and lists the N-V-R for installed

# packages that match a given name.

# Usage:

# python rpmq.py package_name

import rpm, sys

ts = rpm.TransactionSet()

mi = ts.dbMatch( 'name', sys.argv[1] )

for h in mi:

print "%s-%s-%s" % (h['name'], h['version'], h['release'])

��� ������ ����� ������� ��� ����� �������� ��� ������, ������� ������������� Python ����� ������� � sys.argv[1] � ������ dbMatch:

$ python rpmq.py sendmail

sendmail-8.12.5-7

����� - ����� ���������� � ������
����� - ������ � ������� ������
����������


����� ������������ �� OpenNet.ru