7.1.1 rpmfind и rpm2html

7.1.1.1 rpmfind
Одним из популярных средств поиска пакетов является утилита rpmfind, написанная Daniel Veillard. Этот инструмент предоставляет командный интерфейс к средствам поиска пакетов по имени или описанию и вывода (опционально - загрузки пакета) информации о пакетах, соответствующих шаблону поиска. Также предоставляется информация о зависимостях пакета с возможностью автоматизированной загрузки этих зависимостей.

Во время поиска пакетов утилита обращается к локальной БД RPM и к удаленным базам, например, к базе на rpmfind.net.

Обычно rpmfind используют для поиска пакета по имени, но также можно искать пакет по ключевым словам, содержащимся в описании. Например, мне нужно найти новый почтовый клиент. Мне известно, что весьма функциональный клиент - Ximian Evolution. Для поиска Evolution нужно ввести нечто вроде:

$ rpmfind evolution

Resource evolution already installed

Перед поиском в Интернет rpmfind вначале проверит локальную систему. В данном примере пакет evolution уже установлен в системе, поэтому дальнейший поиск не требуется.

Другой пример. Найдем еще один популярный Unix-клиент для почты, exmh:

$ rpmfind exmh

Installing exmh will require 7301 KBytes

### To Transfer:

 ftp://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/RedHat/RPMS//nmh-1.0.4-9.i386.rpm

 ftp://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/RedHat/RPMS//exmh-2.4-2.noarch.rpm

Do you want to download these files to /tmp [Y/n/a/i] ? : a

transferring

 ftp://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/RedHat/RPMS//nmh-1.0.4-9.i386.rpm

saving to /tmp/nmh-1.0.4-9.i386.rpm

transferring

 ftp://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/RedHat/RPMS//exmh-2.4-2.noarch.rpm

saving to /tmp/exmh-2.4-2.noarch.rpm

rpm -U /tmp/nmh-1.0.4-9.i386.rpm /tmp/exmh-2.4-2.noarch.rpm

Здесь rpmfind ищет в локальной системе exmh, но поскольку пакет не установлен, утилита проверяет базы на  http://rpmfind.net, и далее делает две вещи: находит пакет, и находит зависимость пакета - nmh. После повторной проверки и установления факта, что nmh также отсутствует в локальной системе, утилита спрашивает, следует ли выкачать также зависимости, причем вариантов ответа четыре:
* y/yes для закачки файла;
* n/no для отказа от закачки файла;
* a для закачки всего необходимого;
* i для установки всех закачанных пакетов.

Найти и получить пакеты может любой пользователь, установить - только root.

Поскольку в примере выбран ответ "a", утилита скачает все необходимые пакеты в каталог /tmp и сделает попытку обновить пакеты, запуская следующую команду:

rpm -U /tmp/nmh-1.0.4-9.i386.rpm /tmp/exmh-2.4-2.noarch.rpm

В данном случае команда вернет ошибку, так как rpmfind выполняется не от имени root.

Если имя пакета неизвестно, можно выполнить поиск по ключевым словам. Опция --apropos заставляет rpmfind проверять все поля описаний в базе данных на предмет поиска совпадений с шаблоном. Например, нужно отыскать все пакеты, предоставляющие функционал почтовых клиентов. Тогда поможет следующее:

$ rpmfind --apropos "mail client"

Searching the RPM catalog for mail client ...

1:

 ftp://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/RedHat/RPMS//netscape-communicator-4.78-2.i386.rpm

netscape-communicator : A Web browser, news reader and e-mail client.
2:

 ftp://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/RedHat/RPMS//sylpheed-0.5.0-3.i386.rpm

sylpheed : A GTK+ based, lightweight, and fast email client.

.............................................................................................

364:  ftp://ftp.pld.org.pl/PLD-1.0/dists/ra/PLD/SRPMS/SRPMS/sylpheed-0.7.4-1.src.rpm

sylpheed : GTK+ based fast e-mail client

Большая часть вывода опущена из соображений экономии места. Команда нашла 364 пакета, имеющих отношение к почтовым клиентам. В данном случае утилита запросила базы данных узла  http://rpmfind.net и вернула расположение всех пакетов, в описательных полях которых встретился образец "mail client". Из всех 364 найденных пакетов некоторые не являются почтовыми клиентами, другие не подойдут для Red Hat Linux.

Следует со вниманием отнестись к сообщениям rpmfind, так как в базах данных  http://rpmfind.net проиндексированы все пакеты для всех дистрибутивов для всех процессорных архитектур, бинарные и с исходным кодом.

Для сокращения и повышения информативности вывода утилиты, существуют специальные опции, позволяющие тоньше настроить запрос. Основные опции показаны в таблице ниже.

Опция

Результат применения

-v

Повышает многословность вывода. Можно использовать варианты -vv и -vvv

-s server

Подключиться к заданному серверу с базой данных rpmfind

--sources package

Искать пакеты с исходниками

--apropos key word(s)

Вместо имени пакета применять ключевое слово для поиска в описательных полях хэдеров

--dist dist

Ограничить поиск пакетами для заданного дистрибутива

--latest package

Найти наиболее свежую версию пакета

--upgrade package

Найти зависимости наиболее свежих версий

7.1.1.2 rpm2html
Специальные базы данных rpmfind создаются утилитой rpm2html. Если необходимо, rpm2html может создать локальное зеркало баз данных rpmfind.net или же проиндексирует все локально доступные вам пакеты для создания базы данных локального использования.

Утилита генерирует страницы HTML, содержащие описание пакетов. Очень простая по архитектуре, она весьма востребована в течение уже многих лет.

Вывод rpm2html - это одна HTML-страница на каждый пакет, созданная на основе информации, которую выводит команда rpm -qi. Кроме того, на страницу помещаются зависимости видов requires и provides. И, наконец, на генерируемой странице обязательно присутствует ссылка для скачивания.

Все пакеты с одинаковым именем собираются на странице Summary. Эта страница содержит список всех дистрибутивов, содержащих данный пакет.

Используемая вместе со своей базой данных, rpm2html предоставляет эффективную машину поиска rpm.

7.1.1.3 pdbv
Есть еще одна полезная программа - pdbv. Она создает стек HTML-страниц, объединенных перекрестными ссылками. Этот набор отражает состояние пакетов, установленных в вашу систему. Pdbv не выполняет поиск и не была спроектирована для работы с сайтами поиска rpm-пакетов и она еще проще, чем rpm2html. Ее задача - дать общую информацию по пакетам, зависимостям и файлам, входящим в пакеты. Работая сравнительно быстро, она создает мгновенный снимок состояния вашей системы.

Далее - Сайты, посвященные RPM, в Интернете
Назад - Нахождение программного обеспечения в формате rpm-пакетов
Содержание