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

17.3.4 �������������� ������� ������

��������� find_by_name_iter ���� ����� �� �����. ������ RPM2 ����� ������������ ��� ������� ��� ��������� ��������������� ��������. �������� ������� ���������� � ������� ����.

�������

�������������

find_all()

���������� ������ ���� ������� �� �� RPM

find_all_iter()

���������� �������� ��� ������ ���� ������� � �� RPM

find_by_file($filename)

���������� ������ �������, ������ �� ������� �������� ������ ����

find_by_file_iter($filename)

���������� �������� ��� ������ �������, ������ �� ������� �������� ������ ����

find_by_name($package_name)

���������� ������ �������, ����� ������� ������������� ������� �����

find_by_name_iter($package_name)

���������� �������� ��� ������ �������, ����� ������� ������������� ������� �����

find_by_provides($capability)

���������� ������ �������, ��������������� �������� �����������

find_by_provides_iter($capability)

���������� �������� ��� ������ �������, ��������������� �������� �����������

find_by_requires($capability)

���������� ������ �������, ������� ������ �����������

find_by_requires_iter($capability)

���������� �������� ��� ������ �������, ������� ������ �����������

��� ������������ ������������ ���� ������� ������������ ��������� ������ (rpmprovides.pl), ��������� ������ �������� ����� �������� � ����������� ������ ������� rpm � ���������������� �������. ������ ���� ������, ��������������� ������������ ����������� � ������, ������� ������� �� ���.

#!/usr/bin/perl

#

# Queries RPM database for given package,

# listing what it provides and what other

# packages require the capability.

#

# Usage:

# rpmprovides.pl package_name

#

use strict;

use RPM2;

my $rpm_db = RPM2->open_rpm_db();

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

print "Provides: ", $ARGV[0], "\n";

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

print "\t", $pkg->as_nvre(), "\n";

}

# Now, what packages require this capability.

my $pkg_iter2 = $rpm_db->find_by_requires_iter( $ARGV[0] );

print "Requires: ", $ARGV[0], "\n";

while (my $pkg2 = $pkg_iter2->next() ) {

print "\t", $pkg2->as_nvre(), "\n";

}

$rpm_db->close_rpm_db();

��� ������� ������� � ������ ����������� � �������� ���������, ������� ��������� �����:

$ ./rpmprovides.pl httpd

Provides: httpd

httpd-2.0.40-8

Requires: httpd

mod_perl-1.99_05-3

5:redhat-config-httpd-1.0.1-13

mod_python-3.0.0-10

1:mod_ssl-2.0.40-8

��� �������� ������ ������� �������� ������� rpm -q ��� ��������� ���������� �������:

$ rpm -q --whatprovides httpd

httpd-2.0.40-8

$ rpm -q --whatrequires httpd

mod_perl-1.99_05-3

redhat-config-httpd-1.0.1-13

mod_python-3.0.0-10

mod_ssl-2.0.40-8

� ����� ������� ������ ���������� ������ �������.

��������� find_by_provides_iter ���������� ��� ������, ��������, bash. ��� ����������� �������� ��� �����, ����� ��� /bin/bash, ��� ��������� ����� ������, ���������������� ���� ����.

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


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