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

17.3.3 ����� ������ �������

��������� ������ ����� � ������ RPM2. ��� ������������� ����������� ��������� � ������� (� ����������) ������� �������, � ����� ��������� ����� ������ � ���������� ����������� ������� � C API. ��� ������ ��� �������������. ����� ��������� next ��������� ��� � ���������� � ������ ������.

��������:

my $pkg_iter = $rpm_db->find_by_name_iter( "kernel" );

while (my $pkg = $pkg_iter->next() ) {

# Do something ...

}

��������� ������� �������� ������ (rpmname.pl), ������� �������� ������� ������� rpm q ��� ������ ����� ��������� ������.

#!/usr/bin/perl

#

# Queries RPM database for given package.

# Usage:

# rpmname.pl package_name

#

use strict;

use RPM2;

my $rpm_db = RPM2->open_rpm_db( "-path" => "/var/lib/rpm" );

my $pkg_iter = $rpm_db->find_by_name_iter( $ARGV[0] );

while (my $pkg = $pkg_iter->next() ) {

print $pkg->tag("NAME"), "-", $pkg->tag("VERSION"), "\n";

}

$rpm_db->close_rpm_db();

��� ������� ������� ��� ���������� �������� ��� ������ � �������� ���������. ��������:

$ ./rpmname.pl kernel

kernel-2.4.18

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


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