17.3.4 Дополнительные функции поиска
Индекс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 |
При запуске скрипта с именем зависимости в качестве параметра, получим следующий вывод:
$ ./rpmprovides.pl httpd |
Для проверки работы скрипта выполним команду rpm -q для сравнения полученных списков:
$ rpm -q --whatprovides httpd |
В обоих случаях увидим одинаковые списки пакетов.
Процедура find_by_provides_iter возвращает имя пакета, например, bash. Нет возможности передать имя файла, такое как /bin/bash, для получения имени пакета, предоставляющего этот файл.
Далее - Получение информации о пакетах
Назад - Обход списка пакетов
Содержание